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);
DESCRIPTION
tgamma() 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.
NOTE
lgamma(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 ALSO
math(3)
STANDARDS
The tgamma() , and lgamma() functions conform to ISO/IEC 9899:1999(E). July 02, 2008
Mac OS X 10.6 - Generated Thu Sep 17 20:23:21 CDT 2009