Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Determines the gamma function of the specified value.
Syntax
double tgamma(
double x
);
float tgammaf(
float x
);
long double tgammal(
long double x
);
#define tgamma(X) // Requires C11 or higher
float tgamma(
float x
); //C++ only
long double tgamma(
long double x
); //C++ only
Parameters
x
The value to find the gamma of.
Return value
If successful, returns the gamma of x
.
A range error may occur if the magnitude of x
is too large or too small for the data type. A domain error or range error may occur if x
<= 0.
Issue | Return |
---|---|
x = ±0 |
±INFINITY |
x = negative integer |
NaN |
x = -INFINITY |
NaN |
x = +INFINITY |
+INFINITY |
x = NaN |
NaN |
domain error | NaN |
pole error | ±HUGE_VAL , ±HUGE_VALF , or ±HUGE_VALL |
overflow range error | ±HUGE_VAL , ±HUGE_VALF , or ±HUGE_VALL |
underflow range error | the correct value, after rounding. |
Errors are reported as specified in _matherr
.
Remarks
Because C++ allows overloading, you can call overloads of tgamma
that take and return float
and long double
types. In a C program, unless you're using the <tgmath.h> macro to call this function, tgamma
always takes and returns a double
.
If you use the <tgmath.h> tgamma()
macro, the type of the argument determines which version of the function is selected. See Type-generic math for details.
If x is a natural number, this function returns the factorial of (x-1).
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Requirements
Function | C header | C++ header |
---|---|---|
tgamma , tgammaf , tgammal |
<math.h> | <cmath> |
tgamma macro |
<tgmath.h> |
For more compatibility information, see Compatibility.