LGAMMA(3) | NetBSD Library Functions Manual | LGAMMA(3)

# NAME

lgamma, lgammaf, lgamma_r, lgammaf_r, gamma, gammaf, gamma_r, gammaf_r — log gamma function

# LIBRARY

Math Library (libm, -lm)

# SYNOPSIS

#include <math.h>

extern int signgam;

double
lgamma(double x);

float
lgammaf(float x);

double
lgamma_r(double x, int *sign);

float
lgammaf_r(float x, int *sign);

double
gamma(double x);

float
gammaf(float x);

double
gamma_r(double x, int *sign);

float
gammaf_r(float x, int *sign);

# DESCRIPTION

lgamma(x) returns ln|Γ(x)|.

The external integer signgam returns the sign of Γ(x).

lgamma_r() is a reentrant interface that performs identically to lgamma(), differing in that the sign of Γ(x) is stored in the location pointed to by the sign argument and signgam is not modified.

# IDIOSYNCRASIES

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 lgamma() has returned can signgam be correct.

# RETURN VALUES

lgamma() returns appropriate values unless an argument is out of range. Overflow will occur for sufficiently large positive values, and non-positive integers. On the VAX, the reserved operator is returned, and errno is set to ERANGE.

# SEE ALSO

math(3)

# HISTORY

The lgamma function appeared in 4.3BSD.

December 3, 1992 | NetBSD 5.99