(logarithm of the) gamma function

**#include <math.h>**

**double gamma(double ***x***);**

**float gammaf(float ***x***);**

**long double gammal(long double ***x***);**

Link with *-lm*.

Feature Test Macro Requirements for glibc (see **feature_test_macros**(7)):

**gamma**():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE

**gammaf**(), **gammal**():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600

These functions are deprecated: instead, use either the **tgamma**(3) or the **lgamma**(3) functions, as appropriate.

For the definition of the Gamma function, see **tgamma**(3).

The libm in 4.4BSD and some versions of FreeBSD had a **gamma**() function that computes the Gamma function, as one would expect.

Glibc has a **gamma**() function that is equivalent to **lgamma**(3) and computes the natural logarithm of the Gamma function.

See **lgamma**(3).

See **lgamma**(3).

Because of historical variations in behavior across systems, this function is not specified in any standard.

4.2BSD had a **gamma**() that computed ln(|Gamma(|*x*|)|), leaving the sign of Gamma(|*x*|) in the external integer *signgam*. In 4.3BSD the name was changed to **lgamma**(3), and the man page promises

"At some time in the future the name gamma will be rehabilitated and used for the Gamma function"

This did indeed happen in 4.4BSD, where **gamma**() computes the Gamma function (with no effect on *signgam*). However, this came too late, and we now have **tgamma**(3), the "true gamma" function.

This page is part of release 3.74 of the Linux *man-pages* project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.