summaryrefslogtreecommitdiffstats
path: root/man/man3/tgamma.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/tgamma.3')
-rw-r--r--man/man3/tgamma.3216
1 files changed, 216 insertions, 0 deletions
diff --git a/man/man3/tgamma.3 b/man/man3/tgamma.3
new file mode 100644
index 0000000..01d86a9
--- /dev/null
+++ b/man/man3/tgamma.3
@@ -0,0 +1,216 @@
+'\" t
+.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.\" Based on glibc infopages
+.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
+.\" Modified 2004-11-15, fixed error noted by Fabian Kreutz
+.\" <kreutz@dbs.uni-hannover.de>
+.\"
+.TH tgamma 3 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+tgamma, tgammaf, tgammal \- true gamma function
+.SH LIBRARY
+Math library
+.RI ( libm ", " \-lm )
+.SH SYNOPSIS
+.nf
+.B #include <math.h>
+.P
+.BI "double tgamma(double " x );
+.BI "float tgammaf(float " x );
+.BI "long double tgammal(long double " x );
+.fi
+.P
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.P
+.BR tgamma (),
+.BR tgammaf (),
+.BR tgammal ():
+.nf
+ _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
+.fi
+.SH DESCRIPTION
+These functions calculate the Gamma function of
+.IR x .
+.P
+The Gamma function is defined by
+.P
+.RS
+Gamma(x) = integral from 0 to infinity of t\[ha](x\-1) e\[ha]\-t dt
+.RE
+.P
+It is defined for every real number except for nonpositive integers.
+For nonnegative integral
+.I m
+one has
+.P
+.RS
+Gamma(m+1) = m!
+.RE
+.P
+and, more generally, for all
+.IR x :
+.P
+.RS
+Gamma(x+1) = x * Gamma(x)
+.RE
+.P
+Furthermore, the following is valid for all values of
+.I x
+outside the poles:
+.P
+.RS
+Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x)
+.RE
+.SH RETURN VALUE
+On success, these functions return Gamma(x).
+.P
+If
+.I x
+is a NaN, a NaN is returned.
+.P
+If
+.I x
+is positive infinity, positive infinity is returned.
+.P
+If
+.I x
+is a negative integer, or is negative infinity,
+a domain error occurs,
+and a NaN is returned.
+.P
+If the result overflows,
+a range error occurs,
+and the functions return
+.BR HUGE_VAL ,
+.BR HUGE_VALF ,
+or
+.BR HUGE_VALL ,
+respectively, with the correct mathematical sign.
+.P
+If the result underflows,
+a range error occurs,
+and the functions return 0, with the correct mathematical sign.
+.P
+If
+.I x
+is \-0 or +0,
+a pole error occurs,
+and the functions return
+.BR HUGE_VAL ,
+.BR HUGE_VALF ,
+or
+.BR HUGE_VALL ,
+respectively, with the same sign as the 0.
+.SH ERRORS
+See
+.BR math_error (7)
+for information on how to determine whether an error has occurred
+when calling these functions.
+.P
+The following errors can occur:
+.TP
+Domain error: \fIx\fP is a negative integer, or negative infinity
+.I errno
+is set to
+.BR EDOM .
+An invalid floating-point exception
+.RB ( FE_INVALID )
+is raised (but see BUGS).
+.TP
+Pole error: \fIx\fP is +0 or \-0
+.I errno
+is set to
+.BR ERANGE .
+A divide-by-zero floating-point exception
+.RB ( FE_DIVBYZERO )
+is raised.
+.TP
+Range error: result overflow
+.I errno
+is set to
+.BR ERANGE .
+An overflow floating-point exception
+.RB ( FE_OVERFLOW )
+is raised.
+.P
+glibc also gives the following error which is not specified
+in C99 or POSIX.1-2001.
+.TP
+Range error: result underflow
+.\" e.g., tgamma(-172.5) on glibc 2.8/x86-32
+.\" .I errno
+.\" is set to
+.\" .BR ERANGE .
+An underflow floating-point exception
+.RB ( FE_UNDERFLOW )
+is raised, and
+.I errno
+is set to
+.BR ERANGE .
+.\" glibc (as at 2.8) also supports an inexact
+.\" exception for various cases.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR tgamma (),
+.BR tgammaf (),
+.BR tgammal ()
+T} Thread safety MT-Safe
+.TE
+.SH STANDARDS
+C11, POSIX.1-2008.
+.SH HISTORY
+glibc 2.1.
+C99, POSIX.1-2001.
+.SH NOTES
+This function had to be called "true gamma function"
+since there is already a function
+.BR gamma (3)
+that returns something else (see
+.BR gamma (3)
+for details).
+.SH BUGS
+Before glibc 2.18, the glibc implementation of these functions did not set
+.\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=6809
+.I errno
+to
+.B EDOM
+when
+.I x
+is negative infinity.
+.P
+Before glibc 2.19,
+.\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=6810
+the glibc implementation of these functions did not set
+.I errno
+to
+.B ERANGE
+on an underflow range error.
+.P
+.\"
+In glibc versions 2.3.3 and earlier,
+an argument of +0 or \-0 incorrectly produced a domain error
+.RI ( errno
+set to
+.B EDOM
+and an
+.B FE_INVALID
+exception raised), rather than a pole error.
+.SH SEE ALSO
+.BR gamma (3),
+.BR lgamma (3)