LGAMMASection: Linux Programmer's Manual (3)Updated: 2002-08-10 |
LGAMMASection: Linux Programmer's Manual (3)Updated: 2002-08-10 |
#include <math.h> double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x); double lgamma_r(double x, int *signp);
float lgammaf_r(float x, int *signp);
long double lgammal_r(long double x, int *signp);
The 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 <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 lgamma_r() etc. have been introduced; they return this sign via the parameter signp.
For nonpositive integer values of x, lgamma() returns HUGE_VAL, sets errno to ERANGE and raises the zero divide exception. (Similarly, lgammaf() returns HUGE_VALF and lgammal() returns HUGE_VALL.)
A range error occurs if x is too large. A pole error occurs if x is a negative integer or zero.