Namespaces
Variants
Views
Actions

std::tgamma

From cppreference.com
< cpp‎ | numeric‎ | math
Revision as of 22:16, 2 November 2012 by P12bot (Talk | contribs)

 
 
 
Common mathematical functions
Functions
Basic operations
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Exponential functions
(C++11)
(C++11)
(C++11)
(C++11)
Power functions
(C++11)
(C++11)
Trigonometric and hyperbolic functions
(C++11)
(C++11)
(C++11)
Error and gamma functions
(C++11)
(C++11)
(C++11)
tgamma
(C++11)
Nearest integer floating point operations
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Floating point manipulation functions
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Classification/Comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Macro constants
(C++11)(C++11)(C++11)(C++11)(C++11)
 

Template:ddcl list begin <tr class="t-dsc-header">

<td>
Defined in header <cmath>
</td>

<td></td> <td></td> <tr class="t-dcl-sep"><td></td><td></td><td></td></tr>

<tr class="t-dcl ">

<td >
float       tgamma( float arg );
</td>

<td class="t-dcl-nopad"> </td> <td > (since C++11) </td> </tr> <tr class="t-dcl-sep"><td></td><td></td><td></td></tr>

<tr class="t-dcl ">

<td >
double      tgamma( double arg );
</td>

<td class="t-dcl-nopad"> </td> <td > (since C++11) </td> </tr> <tr class="t-dcl-sep"><td></td><td></td><td></td></tr>

<tr class="t-dcl ">

<td >
long double tgamma( long double arg );
</td>

<td class="t-dcl-nopad"> </td> <td > (since C++11) </td> </tr> <tr class="t-dcl-sep"><td></td><td></td><td></td></tr>

<tr class="t-dcl ">

<td >
double      tgamma( Integral arg );
</td>

<td class="t-dcl-nopad"> </td> <td > (since C++11) </td> </tr> Template:ddcl list end

Computes the gamma function of arg.

Contents

Parameters

arg - floating point value

Return value

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

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

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.

Notes

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

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


See also

Template:cpp/numeric/math/dcl list lgamma

External links

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