man pages section 3: Extended Library Functions, Volume 2

Updated: Thursday, June 13, 2019

tgammaf(3M)

Name

tgamma, tgammaf, tgammal - compute gamma function

Synopsis

c99 [ flag... ] file... –lm [ library... ]
#include <math.h>

double tgamma(double x);
float tgammaf(float x);
long double tgammal(long double x);

Description

These functions compute the gamma() function of x.

Return Values

Upon successful completion, these functions return gamma(x).

If x is a negative integer, a domain error occurs and a NaN is returned.

If the correct value would cause overflow, a range error occurs and tgamma(), tgammaf(), and tgammal() return the value of the macro ±HUGE_VAL, ±HUGE_VALF, or ±HUGE_VALL, respectively.

If x is NaN, a NaN is returned.

If x is ±Inf, x is returned.

If x is ±0, a pole error occurs and tgamma(), tgammaf(), and tgammal() return ±HUGE_VAL, ±HUGE_VALF, and ±HUGE_VALL, respectively.

If x is +Inf, a domain error occurs and a NaN is returned.

Errors

These functions will fail if:

Domain Error

The value of x is a negative integer or x is −Inf.

If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, then the invalid floating-point exception is raised.

Pole Error

The value of x is zero.

If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, then the divide–by-zero floating-point exception is raised.

Range Error

The value overflows.

If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, then the overflow floating-point exception is raised.

Usage

An application wanting to check for exceptions should call feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, if fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an exception has been raised. An application should either examine the return value or check the floating point exception flags to detect exceptions.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
Availability
system/library/math
MT-Level
MT-Safe
Standard