Manpages - gamma.3
Table of Contents
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 <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
*gammaf*(), *gammal*():
_XOPEN_SOURCE >= 600 || (_XOPEN_SOURCE && _ISOC99_SOURCE) || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 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)
COLOPHON
This page is part of release 5.13 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 https://www.kernel.org/doc/man-pages/.