TGAMMA(3) BSD Library Functions Manual TGAMMA(3)NAME
tgamma, lgamma, gamma — gamma and log of gamma
SYNOPSIS
#include <math.h>
double
tgamma(double x);
long double
tgammal(long double x);
float
tgammaf(float x);
double
lgamma_r(double x, int *psigngam);
long double
lgammal_r(long double x, int *psigngam);
float
lgammaf_r(float x, int *psigngam);
double
lgamma(double x);
long double
lgammal(long double x);
float
lgammaf(float x);
DESCRIPTIONtgamma() calculates the gamma function of x. lgamma() calculates the
natural logorithm of the absolute value of the gamma function of x.
gamma() is the same function as tgamma. Its use is deprecated.
lgamma_r() is a thread-safe alternative to lgamma(). Instead of setting
the global variable signgam, it stores the sign of Gamma(x) in the loca‐
tion pointed to by its second argument. In order to use the lgamma_r()
function, define the macro _REENTRANT before including <math.h>.
SPECIAL VALUES
tgamma(�0) returns �infinity and raises the "divide-by-zero" floating-
point exception.
tgamma(x) returns a NaN and raises the "invalid" floating-point exception
if x is a negative integer.
tgamma(-infinity) returns a NaN and raises the "invalid" floating-point
exception.
tgamma(+infinity) returns +infinity.
tgamma(x) generates a domain error if x is a negative integer or if the
result cannnot be respresented when x is 0.
A range error may occur if the magnitude of x is too large or too small.
lgamma(1) returns +0.
lgamma(2) returns +0.
lgamma(x) returns +infinity and raises the "divide-by-zero" floating-
point exception if x is a negative integer or 0.
lgamma(�infinity) returns +infinity.
lgamma(x) generates a range error if x is too large.
A range error may occur if x is a negative integer or 0.
NOTElgamma(x) and its variants have the (non-threadsafe) side-effect of set‐
ting the global variable signgam to �1, equal to the sign of tgamma(x).
lgamma_r(x, psigngam) instead sets the user-allocated integer pointed to
by the psigngam argument.
gamma() and gamma_r() are deprecated, and should not be used. The
tgamma() function should be used instead. Note, however, that on some
platforms, gamma() and gamma_r() historically computed the log of the
Gamma function, instead of the Gamma function itself. When porting code
from such platforms, it will be necessary to use lgamma() or lgamma_r()
instead.
SEE ALSOmath(3)STANDARDS
The tgamma() , and lgamma() functions conform to ISO/IEC 9899:2011.
July 02, 2008