# gamma_r(3) [osx man page]

TGAMMA(3) BSD Library Functions Manual TGAMMA(3)NAME

tgamma, lgamma, gammagamma 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 location 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 setting 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:2011. July 02, 2008

## Check Out this Related Man Page

NAME

tgamma, lgamma, gammagamma 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 location 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 setting 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:2011. July 02, 2008