# DragonFly On-Line Manual Pages

Search: Section:

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

## NAME

lgamma, lgammaf, lgammal, lgamma_r, lgammaf_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); 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() and lgammaf_r() functions are thread-safe versions of lgamma() and lgammaf() 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.