tgamma
, tgammaf
, tgammal
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.