LGAMMA(3M)                                                          LGAMMA(3M)


NAME
       lgamma - log gamma function

SYNOPSIS
       #include <math.h>

       double lgamma(x)
       double x;

DESCRIPTION
       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 use a program like this (in C):
              lg = lgamma(x); g = signgam∗exp(lg);

       Only after lgamma has returned can signgam be correct.  Note  too  that
       Γ(x)  must  overflow when x is large enough, underflow when -x is large
       enough, and spawn a division by zero when x is a nonpositive integer.

       Only in the UNIX math library for C was the name gamma ever attached to
       lnΓ.   Elsewhere, for instance in IBM’s FORTRAN library, the name GAMMA
       belongs to Γ and the name ALGAMA to lnΓ in single precision; in  double
       the names are DGAMMA and DLGAMA.  Why should C be different?

       Archaeological  records  suggest  that  C’s  gamma originally delivered
       ln(Γ(|x|)).  Later, the program gamma was changed to cope with negative
       arguments  x  in a more conventional way, but the documentation did not
       reflect that change correctly.  The most recent change corrects inaccu‐
       rate  values when x is almost a negative integer, and lets Γ(x) be com‐
       puted without conditional expressions.  Programmers should  not  assume
       that lgamma has settled down.

       At  some  time  in the future, the name gamma will be rehabilitated and
       used for the gamma function, just as is done in  FORTRAN.   The  reason
       for  this  is  not  so  much  compatibility with FORTRAN as a desire to
       achieve greater speed for smaller values of |x|  and  greater  accuracy
       for larger values.

       Meanwhile,  programmers  who  have  to use the name gamma in its former
       sense, for what is now lgamma, have two choices:

       1) Use the old math library, libom.

       2) Add the following program to your others:
          #include <math.h>
          double gamma(x)
          double x;
          {
                 return (lgamma(x));
          }

DIAGNOSTICS
       The reserved operand is returned on a VAX for  negative  integer  argu‐
       ments, errno is set to ERANGE; for very large arguments over/underflows
       will occur inside the lgamma routine.

SEE ALSO
       math(3M), infnan(3M)


4.3 Berkeley Distribution        May 12, 1986                       LGAMMA(3M)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 383
Valid CSS Valid XHTML 1.0 Strict