summaryrefslogtreecommitdiffstats
path: root/man3/lgamma.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/lgamma.3')
-rw-r--r--man3/lgamma.3202
1 files changed, 202 insertions, 0 deletions
diff --git a/man3/lgamma.3 b/man3/lgamma.3
new file mode 100644
index 0000000..cbcf363
--- /dev/null
+++ b/man3/lgamma.3
@@ -0,0 +1,202 @@
+.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
+.\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.\" based on glibc infopages
+.\"
+.TH lgamma 3 2023-03-30 "Linux man-pages 6.05.01"
+.SH NAME
+lgamma, lgammaf, lgammal, lgamma_r, lgammaf_r, lgammal_r, signgam \-
+log gamma function
+.SH LIBRARY
+Math library
+.RI ( libm ", " \-lm )
+.SH SYNOPSIS
+.nf
+.B #include <math.h>
+.PP
+.BI "double lgamma(double " x );
+.BI "float lgammaf(float " x );
+.BI "long double lgammal(long double " x );
+.PP
+.BI "double lgamma_r(double " x ", int *" signp );
+.BI "float lgammaf_r(float " x ", int *" signp );
+.BI "long double lgammal_r(long double " x ", int *" signp );
+.PP
+.BI "extern int " signgam ;
+.fi
+.PP
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.PP
+.nf
+.BR lgamma ():
+ _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE
+ || /* Since glibc 2.19: */ _DEFAULT_SOURCE
+ || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
+.fi
+.PP
+.BR lgammaf (),
+.BR lgammal ():
+.nf
+ _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
+ || /* Since glibc 2.19: */ _DEFAULT_SOURCE
+ || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
+.fi
+.PP
+.BR lgamma_r (),
+.BR lgammaf_r (),
+.BR lgammal_r ():
+.nf
+ /* Since glibc 2.19: */ _DEFAULT_SOURCE
+ || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
+.fi
+.PP
+.IR signgam :
+.nf
+ _XOPEN_SOURCE
+ || /* Since glibc 2.19: */ _DEFAULT_SOURCE
+ || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
+.fi
+.SH DESCRIPTION
+For the definition of the Gamma function, see
+.BR tgamma (3).
+.PP
+The
+.BR lgamma (),
+.BR lgammaf (),
+and
+.BR lgammal ()
+functions return the natural logarithm of
+the absolute value of the Gamma function.
+The sign of the Gamma function is returned in the
+external integer
+.I signgam
+declared in
+.IR <math.h> .
+It is 1 when the Gamma function is positive or zero, \-1
+when it is negative.
+.PP
+Since using a constant location
+.I signgam
+is not thread-safe, the functions
+.BR lgamma_r (),
+.BR lgammaf_r (),
+and
+.BR lgammal_r ()
+have been introduced; they return the sign via the argument
+.IR signp .
+.SH RETURN VALUE
+On success, these functions return the natural logarithm of Gamma(x).
+.PP
+If
+.I x
+is a NaN, a NaN is returned.
+.PP
+If
+.I x
+is 1 or 2, +0 is returned.
+.PP
+If
+.I x
+is positive infinity or negative infinity,
+positive infinity is returned.
+.PP
+If
+.I x
+is a nonpositive integer,
+a pole error occurs,
+and the functions return
+.RB + HUGE_VAL ,
+.RB + HUGE_VALF ,
+or
+.RB + HUGE_VALL ,
+respectively.
+.PP
+If the result overflows,
+a range error occurs,
+.\" e.g., lgamma(DBL_MAX)
+and the functions return
+.BR HUGE_VAL ,
+.BR HUGE_VALF ,
+or
+.BR HUGE_VALL ,
+respectively, with the correct mathematical sign.
+.SH ERRORS
+See
+.BR math_error (7)
+for information on how to determine whether an error has occurred
+when calling these functions.
+.PP
+The following errors can occur:
+.TP
+Pole error: \fIx\fP is a nonpositive integer
+.I errno
+is set to
+.B ERANGE
+(but see BUGS).
+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.
+.\" glibc (as at 2.8) also supports an inexact
+.\" exception for various cases.
+.SH STANDARDS
+.TP
+.BR lgamma ()
+.TQ
+.BR lgammaf ()
+.TQ
+.BR lgammal ()
+C11, POSIX.1-2008.
+.TP
+.I signgam
+POSIX.1-2008.
+.TP
+.BR lgamma_r ()
+.TQ
+.BR lgammaf_r ()
+.TQ
+.BR lgammal_r ()
+None.
+.SH HISTORY
+.TP
+.BR lgamma ()
+.TQ
+.BR lgammaf ()
+.TQ
+.BR lgammal ()
+C99, POSIX.1-2001.
+.TP
+.I signgam
+POSIX.1-2001.
+.TP
+.BR lgamma_r ()
+.TQ
+.BR lgammaf_r ()
+.TQ
+.BR lgammal_r ()
+None.
+.SH BUGS
+In glibc 2.9 and earlier,
+.\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=6777
+when a pole error occurs,
+.I errno
+is set to
+.BR EDOM ;
+instead of the POSIX-mandated
+.BR ERANGE .
+Since glibc 2.10, glibc does the right thing.
+.SH SEE ALSO
+.BR tgamma (3)