OpenBSD manual page server

Manual Page Search Parameters

LGAMMA(3) Library Functions Manual LGAMMA(3)

lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, tgamma, tgammaf, tgammal, gamma, gammaflog gamma functions

#include <math.h>

extern int signgam;

lgamma(double x);

lgammaf(float x);

long double
lgammal(long double x);

lgamma_r(double x, int *signgamp);

lgammaf_r(float x, int *signgamp);

long double
lgammal_r(long double x, int *signgamp);

tgamma(double x);

tgammaf(float x);

long double
tgammal(long double x);

(x) returns ln|Γ(x)| where

Γx=0tx1e-tdt    for x > 0 and
Γx=πΓ1xsinπx    for x < 1.

The external integer signgam returns the sign of Γ(x). The () function is a single precision version of lgamma(). The () function is an extended precision version of lgamma().

The (), (), and () functions are thread-safe versions of lgamma(), lgammaf(), and lgammal() that return the sign via the signgamp pointer instead of modifying signgam.

The (x), (x) and (x) functions return Γ(x), with no effect on signgam.

Do not use the expression ‘signgam*exp(lgamma(x))’ to compute g := Γ(x). Instead use a program like this (in C):

lg = lgamma(x); g = signgam*exp(lg);

Only after () has returned can signgam be correct.

For arguments in its range, () is preferred, as for positive arguments it is accurate to within one unit in the last place.

lgamma() returns appropriate values unless an argument is out of range. Overflow will occur for sufficiently large positive values, and non-positive integers. For large non-integer negative values, tgamma() will underflow.

The lgamma(), lgammaf(), lgammal(), tgamma(), tgammaf(), and tgammal() functions are expected to conform to ISO/IEC 9899:1999 (“ISO C99”).

The lgamma_r(), lgammaf_r(), and lgammal_r() functions are BSD extensions.

gamma() and gammaf() are deprecated aliases for lgamma() and lgammaf(), respectively.

A gamma() function first appeared in Version 5 AT&T UNIX. The lgamma() function first appeared in 4.3BSD. The tgamma() function first appeared in OpenBSD 4.4, and is based on the gamma() function that appeared in 4.4BSD as a function to compute Γ(x).

August 26, 2017 OpenBSD-current