xref: /freebsd/lib/msun/man/lgamma.3 (revision 46d7c2979ef66b28bbe1d5e3db922f3b47784ccd)
13a8617a8SJordan K. Hubbard.\" Copyright (c) 1985, 1991 Regents of the University of California.
23a8617a8SJordan K. Hubbard.\" All rights reserved.
33a8617a8SJordan K. Hubbard.\"
43a8617a8SJordan K. Hubbard.\" Redistribution and use in source and binary forms, with or without
53a8617a8SJordan K. Hubbard.\" modification, are permitted provided that the following conditions
63a8617a8SJordan K. Hubbard.\" are met:
73a8617a8SJordan K. Hubbard.\" 1. Redistributions of source code must retain the above copyright
83a8617a8SJordan K. Hubbard.\"    notice, this list of conditions and the following disclaimer.
93a8617a8SJordan K. Hubbard.\" 2. Redistributions in binary form must reproduce the above copyright
103a8617a8SJordan K. Hubbard.\"    notice, this list of conditions and the following disclaimer in the
113a8617a8SJordan K. Hubbard.\"    documentation and/or other materials provided with the distribution.
123a8617a8SJordan K. Hubbard.\" 3. All advertising materials mentioning features or use of this software
133a8617a8SJordan K. Hubbard.\"    must display the following acknowledgement:
143a8617a8SJordan K. Hubbard.\"	This product includes software developed by the University of
153a8617a8SJordan K. Hubbard.\"	California, Berkeley and its contributors.
163a8617a8SJordan K. Hubbard.\" 4. Neither the name of the University nor the names of its contributors
173a8617a8SJordan K. Hubbard.\"    may be used to endorse or promote products derived from this software
183a8617a8SJordan K. Hubbard.\"    without specific prior written permission.
193a8617a8SJordan K. Hubbard.\"
203a8617a8SJordan K. Hubbard.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
213a8617a8SJordan K. Hubbard.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
223a8617a8SJordan K. Hubbard.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
233a8617a8SJordan K. Hubbard.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
243a8617a8SJordan K. Hubbard.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
253a8617a8SJordan K. Hubbard.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
263a8617a8SJordan K. Hubbard.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
273a8617a8SJordan K. Hubbard.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
283a8617a8SJordan K. Hubbard.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
293a8617a8SJordan K. Hubbard.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
303a8617a8SJordan K. Hubbard.\" SUCH DAMAGE.
313a8617a8SJordan K. Hubbard.\"
323a8617a8SJordan K. Hubbard.\"     from: @(#)lgamma.3	6.6 (Berkeley) 12/3/92
337f3dea24SPeter Wemm.\" $FreeBSD$
343a8617a8SJordan K. Hubbard.\"
353a8617a8SJordan K. Hubbard.Dd December 3, 1992
363a8617a8SJordan K. Hubbard.Dt LGAMMA 3
37a307d598SRuslan Ermilov.Os
383a8617a8SJordan K. Hubbard.Sh NAME
393a8617a8SJordan K. Hubbard.Nm lgamma ,
407a15a32aSJordan K. Hubbard.Nm lgammaf ,
417a15a32aSJordan K. Hubbard.Nm gamma ,
4246d7c297SBruce Evans.Nm gammaf ,
4346d7c297SBruce Evans.Nm tgamma
4446d7c297SBruce Evans.Nd log gamma functions, gamma function
4564890443SBruce Evans.Sh LIBRARY
4664890443SBruce Evans.Lb libm
473a8617a8SJordan K. Hubbard.Sh SYNOPSIS
4832eef9aeSRuslan Ermilov.In math.h
493a8617a8SJordan K. Hubbard.Ft extern int
503a8617a8SJordan K. Hubbard.Fa signgam ;
513a8617a8SJordan K. Hubbard.sp
523a8617a8SJordan K. Hubbard.Ft double
533a8617a8SJordan K. Hubbard.Fn lgamma "double x"
547a15a32aSJordan K. Hubbard.Ft float
557a15a32aSJordan K. Hubbard.Fn lgammaf "float x"
563a8617a8SJordan K. Hubbard.Ft double
573a8617a8SJordan K. Hubbard.Fn gamma "double x"
587a15a32aSJordan K. Hubbard.Ft float
59354fb385SBruce Evans.Fn gammaf "float x"
6046d7c297SBruce Evans.Ft double
6146d7c297SBruce Evans.Fn tgamma "double x"
623a8617a8SJordan K. Hubbard.Sh DESCRIPTION
637a15a32aSJordan K. Hubbard.Fn lgamma x
647a15a32aSJordan K. Hubbardand
657a15a32aSJordan K. Hubbard.Fn lgammaf x
663a8617a8SJordan K. Hubbard.if t \{\
677a15a32aSJordan K. Hubbardreturn ln\||\(*G(x)| where
683a8617a8SJordan K. Hubbard.Bd -unfilled -offset indent
693a8617a8SJordan K. Hubbard\(*G(x) = \(is\d\s8\z0\s10\u\u\s8\(if\s10\d t\u\s8x\-1\s10\d e\u\s8\-t\s10\d dt	for x > 0 and
703a8617a8SJordan K. Hubbard.br
713a8617a8SJordan K. Hubbard\(*G(x) = \(*p/(\(*G(1\-x)\|sin(\(*px))	for x < 1.
723a8617a8SJordan K. Hubbard.Ed
733a8617a8SJordan K. Hubbard.\}
743a8617a8SJordan K. Hubbard.if n \
75354fb385SBruce Evansreturn ln\||\(*G(x)|.
763a8617a8SJordan K. Hubbard.Pp
773a8617a8SJordan K. HubbardThe external integer
783a8617a8SJordan K. Hubbard.Fa signgam
793a8617a8SJordan K. Hubbardreturns the sign of \(*G(x).
803a8617a8SJordan K. Hubbard.Pp
81675902aaSBruce Evans.Fn gamma
827a15a32aSJordan K. Hubbardand
83675902aaSBruce Evans.Fn gammaf
84675902aaSBruce Evansare deprecated aliases for
85675902aaSBruce Evans.Fn lgamma
86675902aaSBruce Evansand
87675902aaSBruce Evans.Fn lgammaf ,
88675902aaSBruce Evansrespectively.
8946d7c297SBruce Evans.Fn tgamma x
9046d7c297SBruce Evansreturns \(*G(x), with no effect on
9146d7c297SBruce Evans.Fa signgam .
923a8617a8SJordan K. Hubbard.Sh IDIOSYNCRASIES
933a8617a8SJordan K. HubbardDo not use the expression
943a8617a8SJordan K. Hubbard.Dq Li signgam\(**exp(lgamma(x))
953a8617a8SJordan K. Hubbardto compute g := \(*G(x).
963a8617a8SJordan K. HubbardInstead use a program like this (in C):
973a8617a8SJordan K. Hubbard.Bd -literal -offset indent
983a8617a8SJordan K. Hubbardlg = lgamma(x); g = signgam\(**exp(lg);
993a8617a8SJordan K. Hubbard.Ed
1003a8617a8SJordan K. Hubbard.Pp
1013a8617a8SJordan K. HubbardOnly after
1023a8617a8SJordan K. Hubbard.Fn lgamma
1037a15a32aSJordan K. Hubbardor
1047a15a32aSJordan K. Hubbard.Fn lgammaf
1053a8617a8SJordan K. Hubbardhas returned can signgam be correct.
10646d7c297SBruce Evans.Pp
10746d7c297SBruce EvansFor arguments in its range,
10846d7c297SBruce Evans.Fn tgamma
10946d7c297SBruce Evansis preferred, as for positive arguments
11046d7c297SBruce Evansit is accurate to within one unit in the last place.
11146d7c297SBruce EvansExponentiation of
11246d7c297SBruce Evans.Fn lgamma
11346d7c297SBruce Evanswill lose up to 10 significant bits.
1143a8617a8SJordan K. Hubbard.Sh RETURN VALUES
1157a15a32aSJordan K. Hubbard.Fn gamma ,
1167a15a32aSJordan K. Hubbard.Fn gammaf ,
1177a15a32aSJordan K. Hubbard.Fn lgamma ,
1183a8617a8SJordan K. Hubbardand
1197a15a32aSJordan K. Hubbard.Fn lgammaf
1203a8617a8SJordan K. Hubbardreturn appropriate values unless an argument is out of range.
1213a8617a8SJordan K. HubbardOverflow will occur for sufficiently large positive values, and
1223a8617a8SJordan K. Hubbardnon-positive integers.
1233a8617a8SJordan K. HubbardOn the
1243a8617a8SJordan K. Hubbard.Tn VAX ,
1253a8617a8SJordan K. Hubbardthe reserved operator is returned,
1263a8617a8SJordan K. Hubbardand
1273a8617a8SJordan K. Hubbard.Va errno
1283a8617a8SJordan K. Hubbardis set to
129c23155a4SRuslan Ermilov.Er ERANGE .
13046d7c297SBruce EvansFor large non-integer negative values,
13146d7c297SBruce Evans.Fn tgamma
13246d7c297SBruce Evanswill underflow.
1333a8617a8SJordan K. Hubbard.Sh SEE ALSO
1344bd9ba3cSMike Pritchard.Xr math 3
13546d7c297SBruce Evans.Sh STANDARDS
13646d7c297SBruce EvansThe
13746d7c297SBruce Evans.Fn lgamma
13846d7c297SBruce Evansand
13946d7c297SBruce Evans.Fn tgamma
14046d7c297SBruce Evansfunctions are expected to conform to
14146d7c297SBruce Evans.St -isoC-99 .
1423a8617a8SJordan K. Hubbard.Sh HISTORY
1433a8617a8SJordan K. HubbardThe
144563f6bdeSRuslan Ermilov.Fn lgamma
1453a8617a8SJordan K. Hubbardfunction appeared in
1463a8617a8SJordan K. Hubbard.Bx 4.3 .
1473a8617a8SJordan K. HubbardThe
148563f6bdeSRuslan Ermilov.Fn gamma
1493a8617a8SJordan K. Hubbardfunction appeared in
150a9dbc63dSDavid Malone.Bx 4.4
151a9dbc63dSDavid Maloneas a function which computed \(*G(x).
152675902aaSBruce EvansThis version was used in
153675902aaSBruce Evans.Fx 1.1 .
154675902aaSBruce EvansThe name
1553a8617a8SJordan K. Hubbard.Fn gamma
156675902aaSBruce Evanswas originally dedicated to the
157675902aaSBruce Evans.Fn lgamma
158675902aaSBruce Evansfunction,
159675902aaSBruce Evansand that usage was restored by switching to Sun's fdlibm in
160675902aaSBruce Evans.Fx 1.1.5 .
161a9dbc63dSDavid MaloneThe
162a9dbc63dSDavid Malone.Fn tgamma
16346d7c297SBruce Evansfunction appeared in
16446d7c297SBruce Evans.Fx 5.0 .
165