##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::tgamma

From cppreference.com
< cpp‎ | numeric‎ | math

Defined in header `<cmath>` |  |
float tgamma( float arg ); |  | (since C++11)
double tgamma( double arg ); |  | (since C++11)
long double tgamma( long double arg ); |  | (since C++11)
double tgamma( Integral arg ); |  | (since C++11)

Computes the gamma function of `arg`.

### [edit] Parameters

arg | - | value of a floating-point or Integral type

### [edit] Return value

The value of the gamma function of `arg`, that is ∫∞
0 t arg-1
e-t dt.

If `arg` is a natural number, std::tgamma(arg) is the factorial of `arg-1`.

### [edit] Exceptions

If `arg` is negative, domain error may occur and FE_INVALID may be raised.

If `arg` is zero, pole error may occur and FE_DIVBYZERO may be raised.

If `arg` is too large, range error may occur and FE_OVERFLOW may be raised.

If `arg` is too small, range error may occur and FE_UNDERFLOW may be raised.

### [edit] Notes

Many implementations calculate the exact integer-domain factorial if the argument is a sufficiently small integer.

### [edit] Example

Run this code

    #include <iostream>
    #include <cmath>
    double factorial(double arg)
    {
        return std::tgamma(arg + 1);
    }
    int main()
    {
        std::cout << "The factorial of 5 is " << factorial(5) << '\n'
                  << "The factorial of 100 is " << factorial(100) << '\n';
    }

Output:

    The factorial of 5 is 120
    The factorial of 100 is 9.33262e+157

### [edit] See also

lgamma (C++11) | natural logarithm of the gamma function (function) [edit]

### [edit] External links

Weisstein, Eric W. "Gamma Function." From MathWorld--A Wolfram Web Resource.

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/tgamma&oldid=67149"