std::tgamma
From cppreference.com
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.
Contents |
[edit] Parameters
arg | - | floating point value |
[edit] Return value
The value of the gamma function of arg, that is ∫∞
0targ-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
#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
(C++11) |
natural logarithm of the gamma function (function) |
[edit] External links
Weisstein, Eric W. "Gamma Function." From MathWorld--A Wolfram Web Resource.