##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::lgamma

From cppreference.com
< cpp‎ | numeric‎ | math

Defined in header `<cmath>` |  |
float lgamma( float arg ); |  | (since C++11)
double lgamma( double arg ); |  | (since C++11)
long double lgamma( long double arg ); |  | (since C++11)
double lgamma( Integral arg ); |  | (since C++11)

Computes the natural logarithm of the absolute value of the gamma function of `arg`.

### [edit] Parameters

arg | - | value of a floating-point or Integral type

### [edit] Return value

The value of the logarithm of the gamma function of `arg`, that is log
e|∫∞
0 t arg-1
e-t dt|.

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

### [edit] Exceptions

If `arg` is zero or a negative integer, pole error may occur and FE_INVALID or FE_DIVBYZERO may be raised.

If `arg` is too large, range error may occur and FE_OVERFLOW may be raised.

### [edit] Notes

POSIX specification additionally requires that each execution of lgamma stores the sign of the gamma function of `arg` in the external variable `signgam`.

### [edit] See also

tgamma (C++11) | gamma function (function) [edit]
C documentation for lgamma

### [edit] External links

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

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/lgamma&oldid=67148"