HP-UX Reference (11i v2 07/12) - 3 Library Functions A-M (vol 6)
l
lgamma(3M) lgamma(3M)
NAME
lgamma(), lgammaf(), lgammal(), lgammaw(), lgammaq(), lgamma_r(), lgammaf_r(), lgammal_r(),
lgammaw_r(), lgammaq_r(), gamma(), gammaf(), gammal(), gammaw(), gammaq(), gamma_r(), gammaf_r(),
gammal_r(), gammaw_r(), gammaq_r(), signgam - log gamma functions
SYNOPSIS
#include <math.h>
double lgamma(double
x);
double lgamma_r(double
x, int *sign);
double gamma(double
x);
extern int signgam;
HP Integrity Server Only
float lgammaf(float
x);
long double lgammal(long double
x);
extended lgammaw(extended
x);
quad lgammaq(quad
x);
float lgammaf_r(float x, int *
sign);
long double lgammal_r(long double
x, int *sign);
extended lgammaw_r(extended
x, int *sign);
quad lgammaq_r(quad
x, int *
sign);
float gammaf(float
x);
long double gammal(long double
x);
extended gammaw(extended
x
);
quad gammaq(quad
x);
double gamma_r(double
x
, int *sign);
float gammaf_r(float x, int *
sign);
long double gammal_r(long double
x, int *sign);
extended gammaw_r(extended
x, int *sign);
quad gammaq_r(quad
x, int *
sign);
DESCRIPTION
lgamma() and gamma() return log(|Γ(x)|), where Γ(x) is defined as the integral, as t goes from
zero to infinity, of
exp(−t) times t to the power (x−1).
The sign of Γ(x) is returned in the external integer
signgam.
The
tgamma() function, available on Integrity servers, can be used to calculate Γ(x). Or, the following C
program fragment can be used to calculate Γ(x):
if ((y = lgamma(x)) > LN_MAXDOUBLE)
error( );
y = signgam * exp(y);
where if y is greater than LN_MAXDOUBLE , as defined in the <values.h> header file, exp() returns a
range error. (See exp(3M).)
The log gamma function lgamma() is not reentrant because it uses the global variable signgam. The
function lgamma_r() is a reentrant version of lgamma() that can be used in multi-threaded applica-
tions. The function lgamma_r() stores the sign of Γ(x) in the object pointed to by the second argument
sign. The value pointed to by sign is +1 if Γ(x) is positive, -1 if it is negative.
The gamma() and gamma_r() functions are functionally equivalent to lgamma() and lgamma_r().
lgammaf(), gammaf(), lgammaf_r() , and gammaf_r() are float versions of lgamma(),
gamma(), lgamma_r() , and gamma_r() , respectively; they take a float (first) argument and return
688 Hewlett-Packard Company − 1 − HP-UX 11i Version 2: December 2007 Update