]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man3/tgamma.3
user_namespaces.7: Minor rewordings of recently added text
[thirdparty/man-pages.git] / man3 / tgamma.3
index 09c96d7ba1e1d4a771d21cfaf6a4cb6c48392bfc..dbcda5276970b286da80b9e7a9943555bcbe9d9d 100644 (file)
@@ -1,72 +1,93 @@
 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
+.\"
+.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
 .\" Distributed under GPL
+.\" %%%LICENSE_END
+.\"
 .\" 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 2008-08-11 "GNU" "Linux Programmer's Manual"
+.\"
+.TH TGAMMA 3 2017-09-15 "GNU" "Linux Programmer's Manual"
 .SH NAME
 tgamma, tgammaf, tgammal \- true gamma function
 .SH SYNOPSIS
 .B #include <math.h>
-.sp
+.PP
 .BI "double tgamma(double " x );
 .br
 .BI "float tgammaf(float " x );
 .br
 .BI "long double tgammal(long double " x );
-.sp
+.PP
 Link with \fI\-lm\fP.
-.sp
+.PP
 .in -4n
 Feature Test Macro Requirements for glibc (see
 .BR feature_test_macros (7)):
 .in
-.sp
+.PP
 .ad l
 .BR tgamma (),
 .BR tgammaf (),
 .BR tgammal ():
-_XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE; or
-.I cc\ -std=c99
-.ad b
+.RS 4
+_ISOC99_SOURCE ||
+_POSIX_C_SOURCE\ >=\ 200112L
+.RE
+.ad
 .SH DESCRIPTION
+These functions calculate the Gamma function of
+.IR x .
+.PP
 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
+.PP
+.RS
+Gamma(x) = integral from 0 to infinity of t^(x\-1) e^\-t dt
+.RE
+.PP
+It is defined for every real number except for nonpositive integers.
+For nonnegative integral
+.I m
+one has
+.PP
+.RS
+Gamma(m+1) = m!
+.RE
+.PP
+and, more generally, for all
+.IR x :
+.PP
+.RS
+Gamma(x+1) = x * Gamma(x)
+.RE
+.PP
+Furthermore, the following is valid for all values of
+.I x
 outside the poles:
-.sp
-    Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x)
 .PP
+.RS
+Gamma(x) * Gamma(1 \- x) = PI / sin(PI * x)
+.RE
 .SH RETURN VALUE
 On success, these functions return Gamma(x).
-
+.PP
 If
 .I x
 is a NaN, a NaN is returned.
-
+.PP
 If
 .I x
 is positive infinity, positive infinity is returned.
-
+.PP
 If
 .I x
 is a negative integer, or is negative infinity,
 a domain error occurs,
 and a NaN is returned.
-
+.PP
 If the result overflows,
 a range error occurs,
 and the functions return
@@ -75,14 +96,14 @@ and the functions return
 or
 .BR HUGE_VALL ,
 respectively, with the correct mathematical sign.
-
+.PP
 If the result underflows,
 a range error occurs,
 and the functions return 0, with the correct mathematical sign.
-
+.PP
 If
 .I x
-is -0 or +0,
+is \-0 or +0,
 a pole error occurs,
 and the functions return
 .BR HUGE_VAL ,
@@ -99,8 +120,6 @@ when calling these functions.
 The following errors can occur:
 .TP
 Domain error: \fIx\fP is a negative integer, or negative infinity
-.\" FIXME . errno is not set to EDOM for x == -inf
-.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809
 .I errno
 is set to
 .BR EDOM .
@@ -134,19 +153,30 @@ Range error: result underflow
 .\" .BR ERANGE .
 An underflow floating-point exception
 .RB ( FE_UNDERFLOW )
-is raised.
-.IP
+is raised, and
 .I errno
-is not set for this case.
-.\" FIXME . Is it intentional that errno is not set:
-.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6810
-.\"
-.\" glibc (as at 2.8) also supports and an inexact
+is set to
+.BR ERANGE .
+.\" glibc (as at 2.8) also supports an inexact
 .\" exception for various cases.
 .SH VERSIONS
 These functions first appeared in glibc in version 2.1.
-.SH "CONFORMING TO"
-C99, POSIX.1-2001.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw30 lb lb
+l l l.
+Interface      Attribute       Value
+T{
+.BR tgamma (),
+.BR tgammaf (),
+.BR tgammal ()
+T}     Thread safety   MT-Safe
+.TE
+.SH CONFORMING TO
+C99, POSIX.1-2001, POSIX.1-2008.
 .SH NOTES
 This function had to be called "true gamma function"
 since there is already a function
@@ -155,22 +185,33 @@ that returns something else (see
 .BR gamma (3)
 for details).
 .SH BUGS
-If
+Before version 2.18, the glibc implementation of these functions did not set
+.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809
+.I errno
+to
+.B EDOM
+when
 .I x
-is negative infinity,
+is negative infinity.
+.PP
+Before glibc 2.19,
+.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6810
+the glibc implementation of these functions did not set
 .I errno
-is not set (it should be set to
-.BR EDOM ).
-.\" Bug raised: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6809
-
+to
+.B ERANGE
+on an underflow range error.
+.I x
+.PP
+.\"
 In glibc versions 2.3.3 and earlier,
-an argument of +0 or -0 incorrectly produced a domain error
+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"
+.SH SEE ALSO
 .BR gamma (3),
 .BR lgamma (3)