# gammaf (3)

# NAME

gamma, gammaf, gammal - (logarithm of the) gamma function# SYNOPSIS

**#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**():

_XOPEN_SOURCE

|| /* Since glibc 2.19: */ _DEFAULT_SOURCE

|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

|| /* Since glibc 2.19: */ _DEFAULT_SOURCE

|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

**gammaf**(),

**gammal**():

_XOPEN_SOURCE >= 600 || (_XOPEN_SOURCE && _ISOC99_SOURCE)

|| /* Since glibc 2.19: */ _DEFAULT_SOURCE

|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

|| /* Since glibc 2.19: */ _DEFAULT_SOURCE

|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

# DESCRIPTION

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).

## *BSD version

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

## glibc version

Glibc has a**gamma**() function that is equivalent to

**lgamma**(3) and computes the natural logarithm of the Gamma function.

# RETURN VALUE

See**lgamma**(3).

# ERRORS

See**lgamma**(3).

# ATTRIBUTES

For an explanation of the terms used in this section, see**attributes**(7).

Interface | Attribute | Value |

gamma (), gammaf (), gammal () | Thread safety | MT-Unsafe race:signgam |

# CONFORMING TO

Because of historical variations in behavior across systems, this function is not specified in any recent standard. It was documented in SVID 2.# NOTES

## History

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.

# SEE ALSO

**lgamma**(3),

**signgam**(3),

**tgamma**(3)