**lgamma**

gamma function
SYNOPSIS
#include <math.h>
double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x);
double lgamma_r(double x, int *signp);
float lgammaf_r(float x, int *signp);
long double lgammal_r(long double x, int *signp);
extern int signgam;
Link with -lm.
Feature Test Macro Requirements for glibc (see **feature_test_macros(7)**):
lgamma():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or cc -std=c99
lgammaf(), lgammal():
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 ||
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or cc -std=c99
lgamma_r(), lgammaf_r(), lgammal_r():
_BSD_SOURCE || _SVID_SOURCE
signgam:
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE
DESCRIPTION
For the definition of the Gamma function, see **tgamma(3)**.
The lgamma() function returns the natural logarithm of the absolute
value of the Gamma function. The sign of the Gamma function is
returned in the external integer signgam declared in <math.h>. It is 1
when the Gamma function is positive or zero, -1 when it is negative.
Since using a constant location signgam is not thread-safe, the func-
tions lgamma_r() etc. have been introduced; they return the sign via
the argument signp.
RETURN VALUE
On success, these functions return the natural logarithm of Gamma(x).
If x is a NaN, a NaN is returned.
If x is 1 or 2, +0 is returned.
If x is positive infinity or negative infinity, positive infinity is
returned.
Pole error: x is a nonpositive integer
errno is set to ERANGE (but see BUGS). A divide-by-zero float-
ing-point exception (FE_DIVBYZERO) is raised.
Range error: result overflow
errno is set to ERANGE. An overflow floating-point exception
(FE_OVERFLOW) is raised.
CONFORMING TO
The lgamma() functions are specified in C99 and POSIX.1-2001. signgam
is specified in POSIX.1-2001, but not in C99. The lgamma_r() functions
are nonstandard, but present on several other systems.
BUGS
In glibc 2.9 and earlier, when a pole error occurs, errno is set to
EDOM; instead of the POSIX-mandated ERANGE. Since version 2.10, glibc
does the right thing.
SEE ALSO
**tgamma(3)**
COLOPHON
This page is part of release 3.35 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://man7.org/linux/man-pages/.
2010-09-11 **LGAMMA(3)**

###### Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2017
Hurricane Electric.
All Rights Reserved.