lgamma

NAME

lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r - log gamma function

SYNOPSIS

#include <math.h>
 I double lgamma(double  x );

I float lgammaf(float x );
I long double lgammal(long double x ); I double lgamma_r(double x , int * signp );
I float lgammaf_r(float x , int * signp );
I long double lgammal_r(long double x , int * signp );
Compile with -std=c99; link with -lm.

DESCRIPTION

For the definition of the Gamma function, see tgamma(3).
The R lgamma () function returns the natural logarithm of the absolute value of the Gamma function. The sign of the Gamma function is returned in the external integer signgam declared in R <math.h> . It is 1 when the Gamma function is positive or zero, -1 when it is negative.
Since using a constant location signgam is not thread-safe, the functions R lgamma_r () etc. have been introduced; they return this sign via the parameter R signp .
For non-positive integer values of x, R lgamma () returns R HUGE_VAL , sets errno to ERANGE and raises the zero divide exception. (Similarly, R lgammaf () returns HUGE_VALF and R lgammal () returns R HUGE_VALL .)

ERRORS

In order to check for errors, set errno to zero and call feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, if errno is non-zero or fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an error has occurred.
A range error occurs if x is too large. A pole error occurs if x is a negative integer or zero.

CONFORMING TO

C99, SVr4, 4.3BSD

SEE ALSO

tgamma(3)