]> 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 6541ed79ac9377f9fd6942f06c5f33059247527b..dbcda5276970b286da80b9e7a9943555bcbe9d9d 100644 (file)
 .\" Modified 2004-11-15, fixed error noted by Fabian Kreutz
 .\"     <kreutz@dbs.uni-hannover.de>
 .\"
-.TH TGAMMA 3 2010-09-20 "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 ():
 .RS 4
-_XOPEN_SOURCE\ >=\ 600 || _ISOC99_SOURCE ||
-_POSIX_C_SOURCE\ >=\ 200112L;
-.br
-or
-.I cc\ -std=c99
+_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
+.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
-.sp
-    Gamma(m+1) = m!
-.sp
+.PP
+.RS
+Gamma(m+1) = m!
+.RE
+.PP
 and, more generally, for all
 .IR x :
-.sp
-    Gamma(x+1) = x * Gamma(x)
-.sp
+.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
@@ -89,11 +96,11 @@ 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,
@@ -146,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 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.
+C99, POSIX.1-2001, POSIX.1-2008.
 .SH NOTES
 This function had to be called "true gamma function"
 since there is already a function
@@ -172,10 +190,20 @@ Before version 2.18, the glibc implementation of these functions did not set
 .I errno
 to
 .B EDOM
-when 
+when
 .I x
 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
+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
 .RI ( errno