LGAMMA(3) Linux Programmers Manual LGAMMA(3)
NAME
lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam  log
gamma function
SYNOPSIS
#include
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);
extern int signgam;
Link with lm.
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
lgamma(), lgammaf(), lgammal(): _BSD_SOURCE  _SVID_SOURCE 
_XOPEN_SOURCE  _ISOC99_SOURCE; or cc std=c99
lgamma_r(), lgammaf_r(), lgammal_r(): _BSD_SOURCE  _SVID_SOURCE
signgam: _BSD_SOURCE  _SVID_SOURCE  _XOPEN_SOURCE
DESCRIPTION
For the definition of the Gamma function, see tgamma(3).
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 . It is 1
when the Gamma function is positive or zero, 1 when it is negative.
Since using a constant location signgam is not threadsafe, the func
tions lgamma_r() etc. have been introduced; they return this sign via
the argument 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.)
ERRORS
In order to check for errors, set errno to zero and call feclearex
cept(FE_ALL_EXCEPT) before calling these functions. On return, if
errno is nonzero or fetestexcept(FE_INVALID  FE_DIVBYZERO  FE_OVER
FLOW  FE_UNDERFLOW) is nonzero, 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
The lgamma() functions are specified in C99 and POSIX.12001. signgam
is specified in POSIX.12001, but not in C99. The lgamma_r() functions
are nonstandard, but present on several other systems.
SEE ALSO
tgamma(3)
COLOPHON
This page is part of release 3.05 of the Linux manpages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/manpages/.
20070726 LGAMMA(3)
