mirror of https://github.com/mkerrisk/man-pages
83 lines
1.9 KiB
Groff
83 lines
1.9 KiB
Groff
.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
|
|
.\" Distributed under GPL
|
|
.\" Based on glibc infopages
|
|
.\" Modified 2004-11-15, fixed error noted by Fabian Kreutz
|
|
.\" <kreutz@dbs.uni-hannover.de>
|
|
.TH TGAMMA 3 2007-07-26 "GNU" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
tgamma, tgammaf, tgammal \- true gamma function
|
|
.SH SYNOPSIS
|
|
.B #include <math.h>
|
|
.sp
|
|
.BI "double tgamma(double " x );
|
|
.br
|
|
.BI "float tgammaf(float " x );
|
|
.br
|
|
.BI "long double tgammal(long double " x );
|
|
.sp
|
|
Link with \fI\-lm\fP.
|
|
.sp
|
|
.in -4n
|
|
Feature Test Macro Requirements for glibc (see
|
|
.BR feature_test_macros (7)):
|
|
.in
|
|
.sp
|
|
.ad l
|
|
.BR tgamma (),
|
|
.BR tgammaf (),
|
|
.BR tgammal ():
|
|
_XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE; or
|
|
.I cc\ -std=c99
|
|
.ad b
|
|
.SH DESCRIPTION
|
|
The Gamma function is defined by
|
|
.sp
|
|
Gamma(x) = integral from 0 to infinity of t^(x\-1) e^\-t dt
|
|
.sp
|
|
It is defined for every real number except for non-positive integers.
|
|
For non-negative integral \fIm\fP one has
|
|
.sp
|
|
Gamma(m+1) = m!
|
|
.sp
|
|
and, more generally, for all \fIx\fP:
|
|
.sp
|
|
Gamma(x+1) = x * Gamma(x)
|
|
.sp
|
|
Furthermore, the following is valid for all values of \fIx\fP
|
|
outside the poles:
|
|
.sp
|
|
Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x)
|
|
.PP
|
|
This function returns the value of the Gamma function for the
|
|
argument \fIx\fP.
|
|
It had to be called "true gamma function"
|
|
since there is already a function
|
|
.BR gamma (3)
|
|
that returns something else.
|
|
.SH ERRORS
|
|
In order to check for errors, set
|
|
.I errno
|
|
to zero and call
|
|
.I feclearexcept(FE_ALL_EXCEPT)
|
|
before calling these functions.
|
|
On return, if
|
|
.I errno
|
|
is nonzero or
|
|
.I fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW)
|
|
is nonzero, an error has occurred.
|
|
.LP
|
|
A range error occurs if
|
|
.I x
|
|
is too large.
|
|
A pole error occurs if
|
|
.I x
|
|
is zero.
|
|
A domain error (or a pole error) occurs if
|
|
.I x
|
|
is a negative integer.
|
|
.SH "CONFORMING TO"
|
|
C99.
|
|
.SH "SEE ALSO"
|
|
.BR gamma (3),
|
|
.BR lgamma (3)
|