DragonFly On-Line Manual Pages

LGAMMA(3)	      DragonFly Library Functions Manual	     LGAMMA(3)

NAME

lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, tgamma, tgammaf, tgammal -- log gamma functions

SYNOPSIS

#include <math.h> extern int signgam; double lgamma(double x); float lgammaf(float x); long double lgammal(long double x); double lgamma_r(double x, int *signgamp); float lgammaf_r(float x, int *signgamp); long double lgammal_r(long double x, int *signgamp); double tgamma(double x); float tgammaf(float x); long double tgammal(long double x); DESCRIPTION _ lgamma(x) returns ln|| (x)|. _ The external integer signgam returns the sign of | (x). The lgammaf() function is a single precision version of lgamma(). The lgammal() func- tion is an extended precision version of lgamma(). The lgamma_r(), lgammaf_r(), and lgammal_r() functions are thread-safe versions of lgamma(), lgammaf(), and lgammal() that return the sign via the signgamp pointer instead of modifying signgam. _ The tgamma(x), tgammaf(x) and tgammal(x) functions return | (x), with no effect on signgam. IDIOSYNCRASIES _ Do not use the expression `signgam*exp(lgamma(x))' to compute g := | (x). Instead use a program like this (in C): lg = lgamma(x); g = signgam*exp(lg); Only after lgamma() has returned can signgam be correct. For arguments in its range, tgamma() is preferred, as for positive argu- ments it is accurate to within one unit in the last place.

RETURN VALUES

lgamma() returns appropriate values unless an argument is out of range. Overflow will occur for sufficiently large positive values, and non-posi- tive integers. For large non-integer negative values, tgamma() will underflow. On the VAX, the reserved operator is returned, and errno is set to ERANGE.

SEE ALSO

infnan(3)

STANDARDS

The lgamma(), lgammaf(), lgammal(), tgamma(), tgammaf(), and tgammal() functions are expected to conform to ISO/IEC 9899:1999 (``ISO C99''). The lgamma_r(), lgammaf_r(), and lgammal_r() functions are BSD exten- sions. gamma() and gammaf() are deprecated aliases for lgamma() and lgammaf(), respectively.

HISTORY

A gamma() function first appeared in Version 5 AT&T UNIX. The lgamma() function first appeared in 4.3BSD. The tgamma() function first appeared in OpenBSD 4.4, and is based on t_e gamma() function that appeared in 4.4BSD as a function to compute | (x). DragonFly 4.3 January 15, 2015 DragonFly 4.3