lgammalgamma_rlgammaflgammaf_rgammagamma_rgammafgammaf_rtgamma
- log gamma functions, gamma function
LIBRARY
Lb libm
SYNOPSIS
#include <math.h> extern int
Fa signgam ;
double
lgamma (double x); double
lgamma_r (double x int *signgamp); float
lgammaf (float x); float
lgammaf_r (float x int *signgamp); double
gamma (double x); double
gamma_r (double x int *signgamp); float
gammaf (float x); float
gammaf_r (float x int *signgamp); double
tgamma (double x);
DESCRIPTION
lgamma (x);
and
lgammaf (x);
return ln|Gamma(x)|.
The external integer
Fa signgam
returns the sign of Gamma(x).
lgamma_r (x signgamp);
and
lgammaf_r (x signgamp);
provide the same functionality as
lgamma (x);
and
lgammaf (x);
but the caller must provide an integer to store the sign of Gamma(x).
gamma (,);
gammaf (,);
gamma_r (,);
and
gammaf_r ();
are deprecated aliases for
lgamma (,);
lgammaf (,);
lgamma_r (,);
and
lgammaf_r (,);
respectively.
tgamma (x);
returns Gamma(x), with no effect on
Fa signgam .
IDIOSYNCRASIES
Do not use the expression
``signgam*exp(lgamma(x))
''
to compute g := Gamma(x).
Instead use a program like this (in C):
lg = lgamma(x); g = signgam*exp(lg);
Only after
lgamma ();
or
lgammaf ();
has returned can signgam be correct.
For arguments in its range,
tgamma ();
is preferred, as for positive arguments
it is accurate to within one unit in the last place.
Exponentiation of
lgamma ();
will lose up to 10 significant bits.
RETURN VALUES
gamma (,);
gamma_r (,);
gammaf (,);
gammaf_r (,);
lgamma (,);
lgamma_r (,);
lgammaf (,);
and
lgammaf_r ();
return appropriate values unless an argument is out of range.
Overflow will occur for sufficiently large positive values, and
non-positive integers.
For large non-integer negative values,
tgamma ();
will underflow.
The
lgamma ();
and
tgamma ();
functions are expected to conform to
St -isoC-99 .
HISTORY
The
lgamma ();
function appeared in
BSD 4.3
The
gamma ();
function appeared in
BSD 4.4
as a function which computed Gamma(x).
This version was used in
Fx 1.1 .
The name
gamma ();
was originally dedicated to the
lgamma ();
function,
and that usage was restored by switching to Sun's fdlibm in
Fx 1.1.5 .
The
tgamma ();
function appeared in
Fx 5.0 .