tgamma, tgammaf, tgammal — true gamma function
#include <math.h>
| double
            tgamma( | double x ); | 
| float
            tgammaf( | float x ); | 
| long double
            tgammal( | long double x ); | 
| ![[Note]](../stylesheet/note.png) | Note | |||
|---|---|---|---|---|
| 
 | 
| ![[Note]](../stylesheet/note.png) | Note | 
|---|---|
| Link with  | 
The Gamma function is defined by
    Gamma(x) = integral from 0 to infinity of t^(x−1) e^−t dt
      It is defined for every real number except for nonpositive
      integers. For nonnegative integral m one has
    Gamma(m+1) = m!
      and, more generally, for all x:
    Gamma(x+1) = x * Gamma(x)
      Furthermore, the following is valid for all values of
      x outside the
      poles:
    Gamma(x) * Gamma(1 − x) = PI / sin(PI * x)
      On success, these functions return Gamma(x).
If x is a NaN, a
      NaN is returned.
If x is positive
      infinity, positive infinity is returned.
If x is a negative
      integer, or is negative infinity, a domain error occurs, and
      a NaN is returned.
If the result overflows, a range error occurs, and the
      functions return HUGE_VAL,
      HUGE_VALF, or HUGE_VALL, respectively, with the correct
      mathematical sign.
If the result underflows, a range error occurs, and the functions return 0, with the correct mathematical sign.
If x is −0
      or +0, a pole error occurs, and the functions return
      HUGE_VAL, HUGE_VALF, or HUGE_VALL, respectively, with the same sign
      as the 0.
See math_error(7) for information on how to determine whether an error has occurred when calling these functions.
The following errors can occur:
x is a negative integer, or
          negative infinityerrno is set to
            EDOM. An invalid
            floating-point exception (FE_INVALID) is raised (but see
            BUGS).
x is +0 or
          −0errno is set to
            ERANGE. A divide-by-zero
            floating-point exception (FE_DIVBYZERO) is raised.
errno is set to
            ERANGE. An overflow
            floating-point exception (FE_OVERFLOW) is raised.
glibc also gives the following error which is not specified in C99 or POSIX.1-2001.
An underflow floating-point exception (FE_UNDERFLOW) is raised.
errno is not set for
            this case.
This function had to be called "true gamma function" since there is already a function gamma(3) that returns something else (see gamma(3) for details).
If x is negative
      infinity, errno is not set (it
      should be set to EDOM).
In glibc versions 2.3.3 and earlier, an argument of +0 or
      −0 incorrectly produced a domain error (errno set to EDOM and an FE_INVALID exception raised), rather than a
      pole error.
This page is part of release 3.33 of the Linux man-pages project. A
      description of the project, and information about reporting
      bugs, can be found at http://man7.org/linux/man-pages/.
| Copyright 2002 Walter Harms (walter.harmsinformatik.uni-oldenburg.de) Distributed under GPL Based on glibc infopages and Copyright 2008, Linux Foundation, written by Michael Kerrisk <mtk.manpagesgmail.com> Modified 2004-11-15, fixed error noted by Fabian Kreutz <kreutzdbs.uni-hannover.de> |