gamma(3M) UNIX System V(Math Libraries) gamma(3M)
NAME
gamma, lgamma - log gamma function
SYNOPSIS
cc [flag ...] file ... -lm [library ...]
#include <math.h>
double gamma (double x);
double lgamma (double x);
extern int signgam;
DESCRIPTION
gamma and lgamma return
ln(|Γ~(x)|)
where Γ~(x) is defined as
oo
∫ e-ttx-1dt
0
The sign of Γ~(x) is returned in the external integer signgam. The
argument x may not be a non-positive integer.
The following C program fragment might be used to calculate Γ~:
if ((y = gamma(x)) > LNMAXDOUBLE)
error();
y = signgam * exp(y);
where LNMAXDOUBLE is the least value that causes exp to return a range
error, and is defined in the values.h header file.
SEE ALSO
exp(3M), matherr(3M), values(5).
DIAGNOSTICS
For non-positive integer arguments HUGE is returned and errno is set to
EDOM. A message indicating SING error is printed on the standard error
output.
If the correct value would overflow, gamma and lgamma return HUGE and set
errno to ERANGE.
Except when the -Xc compilation option is used, these error-handling
procedures may be changed with the function matherr. When the -Xa or -Xc
compilation options are used, HUGEVAL is returned instead of HUGE and no
error messages are printed.
10/89 Page 1