GAMMA(3M-SVR4) RISC/os Reference Manual GAMMA(3M-SVR4)
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 -t x-1
∫ e t dt
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)) > LN_MAXDOUBLE)
error();
y = signgam * exp(y);
where LN_MAXDOUBLE is the least value that causes exp(3M) 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,
Printed 11/19/92 Page 1
GAMMA(3M-SVR4) RISC/os Reference Manual GAMMA(3M-SVR4)
HUGE_VAL is returned instead of HUGE and no error messages
are printed.
Page 2 Printed 11/19/92