LGAMMA(3M)

NAME
lgamma - log gamma function

SYNOPSIS

#include <math.h>

extern int signgam;

double lgamma(x)
double x;

DESCRIPTION

lgamma() returns
lgamma returns ln|Γ(x)|.

The external integer signgam returns the sign of Γ(x).

IDIOSYNCRASIES

Do not use the expression signgam*exp(lgamma(x)) to compute `g := Γ(x)'. Instead compute lgamma() first:
    lg = lgamma(x); g = signgam*exp(lg);

only after lgamma() has returned can signgam be correct. Note: Γ(x) must overflow when x is large enough, underflow when -x is large enough, and generate a division by zero exception at the singularities x a nonpositive integer. In addition, lgamma() may also set errno and call matherr(3M).

SEE ALSO
matherr(3M)