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.