lgamma.3m (2010 09)

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 (x1).
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
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)