186 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" Copyright (c) 1985, 1991 Regents of the University of California.
 | 
						|
.\" All rights reserved.
 | 
						|
.\"
 | 
						|
.\" Redistribution and use in source and binary forms, with or without
 | 
						|
.\" modification, are permitted provided that the following conditions
 | 
						|
.\" are met:
 | 
						|
.\" 1. Redistributions of source code must retain the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer.
 | 
						|
.\" 2. Redistributions in binary form must reproduce the above copyright
 | 
						|
.\"    notice, this list of conditions and the following disclaimer in the
 | 
						|
.\"    documentation and/or other materials provided with the distribution.
 | 
						|
.\" 3. All advertising materials mentioning features or use of this software
 | 
						|
.\"    must display the following acknowledgement:
 | 
						|
.\"	This product includes software developed by the University of
 | 
						|
.\"	California, Berkeley and its contributors.
 | 
						|
.\" 4. Neither the name of the University nor the names of its contributors
 | 
						|
.\"    may be used to endorse or promote products derived from this software
 | 
						|
.\"    without specific prior written permission.
 | 
						|
.\"
 | 
						|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
						|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
						|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
						|
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
						|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
						|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
						|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
						|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
						|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
						|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
						|
.\" SUCH DAMAGE.
 | 
						|
.\"
 | 
						|
.\"     from: @(#)lgamma.3	6.6 (Berkeley) 12/3/92
 | 
						|
.\" $FreeBSD: src/lib/msun/man/lgamma.3,v 1.22 2005/01/16 16:46:14 ru Exp $
 | 
						|
.\"
 | 
						|
.Dd January 14, 2005
 | 
						|
.Dt LGAMMA 3
 | 
						|
.Os
 | 
						|
.Sh NAME
 | 
						|
.Nm lgamma ,
 | 
						|
.Nm lgamma_r ,
 | 
						|
.Nm lgammaf ,
 | 
						|
.Nm lgammaf_r ,
 | 
						|
.Nm gamma ,
 | 
						|
.Nm gamma_r ,
 | 
						|
.Nm gammaf ,
 | 
						|
.Nm gammaf_r ,
 | 
						|
.Nm tgamma
 | 
						|
.Nd log gamma functions, gamma function
 | 
						|
.Sh LIBRARY
 | 
						|
.Lb libm
 | 
						|
.Sh SYNOPSIS
 | 
						|
.In math.h
 | 
						|
.Ft extern int
 | 
						|
.Fa signgam ;
 | 
						|
.sp
 | 
						|
.Ft double
 | 
						|
.Fn lgamma "double x"
 | 
						|
.Ft double
 | 
						|
.Fn lgamma_r "double x" "int *signgamp"
 | 
						|
.Ft float
 | 
						|
.Fn lgammaf "float x"
 | 
						|
.Ft float
 | 
						|
.Fn lgammaf_r "float x" "int *signgamp"
 | 
						|
.Ft double
 | 
						|
.Fn gamma "double x"
 | 
						|
.Ft double
 | 
						|
.Fn gamma_r "double x" "int *signgamp"
 | 
						|
.Ft float
 | 
						|
.Fn gammaf "float x"
 | 
						|
.Ft float
 | 
						|
.Fn gammaf_r "float x" "int *signgamp"
 | 
						|
.Ft double
 | 
						|
.Fn tgamma "double x"
 | 
						|
.Sh DESCRIPTION
 | 
						|
.Fn lgamma x
 | 
						|
and
 | 
						|
.Fn lgammaf x
 | 
						|
.if t \{\
 | 
						|
return ln\||\(*G(x)| where
 | 
						|
.Bd -unfilled -offset indent
 | 
						|
\(*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
 | 
						|
\(*G(x) = \(*p/(\(*G(1\-x)\|sin(\(*px))	for x < 1.
 | 
						|
.Ed
 | 
						|
.\}
 | 
						|
.if n \
 | 
						|
return ln\||\(*G(x)|.
 | 
						|
.Pp
 | 
						|
The external integer
 | 
						|
.Fa signgam
 | 
						|
returns the sign of \(*G(x).
 | 
						|
.Pp
 | 
						|
.Fn lgamma_r x signgamp
 | 
						|
and
 | 
						|
.Fn lgammaf_r x signgamp
 | 
						|
provide the same functionality as
 | 
						|
.Fn lgamma x
 | 
						|
and
 | 
						|
.Fn lgammaf x
 | 
						|
but the caller must provide an integer to store the sign of \(*G(x).
 | 
						|
.Pp
 | 
						|
.Fn gamma ,
 | 
						|
.Fn gammaf ,
 | 
						|
.Fn gamma_r ,
 | 
						|
and
 | 
						|
.Fn gammaf_r
 | 
						|
are deprecated aliases for
 | 
						|
.Fn lgamma ,
 | 
						|
.Fn lgammaf ,
 | 
						|
.Fn lgamma_r ,
 | 
						|
and
 | 
						|
.Fn lgammaf_r ,
 | 
						|
respectively.
 | 
						|
.Fn tgamma x
 | 
						|
returns \(*G(x), with no effect on
 | 
						|
.Fa signgam .
 | 
						|
.Sh IDIOSYNCRASIES
 | 
						|
Do not use the expression
 | 
						|
.Dq Li signgam\(**exp(lgamma(x))
 | 
						|
to compute g := \(*G(x).
 | 
						|
Instead use a program like this (in C):
 | 
						|
.Bd -literal -offset indent
 | 
						|
lg = lgamma(x); g = signgam\(**exp(lg);
 | 
						|
.Ed
 | 
						|
.Pp
 | 
						|
Only after
 | 
						|
.Fn lgamma
 | 
						|
or
 | 
						|
.Fn lgammaf
 | 
						|
has returned can signgam be correct.
 | 
						|
.Pp
 | 
						|
For arguments in its range,
 | 
						|
.Fn tgamma
 | 
						|
is preferred, as for positive arguments
 | 
						|
it is accurate to within one unit in the last place.
 | 
						|
Exponentiation of
 | 
						|
.Fn lgamma
 | 
						|
will lose up to 10 significant bits.
 | 
						|
.Sh RETURN VALUES
 | 
						|
.Fn gamma ,
 | 
						|
.Fn gamma_r ,
 | 
						|
.Fn gammaf ,
 | 
						|
.Fn gammaf_r ,
 | 
						|
.Fn lgamma ,
 | 
						|
.Fn lgamma_r ,
 | 
						|
.Fn lgammaf ,
 | 
						|
and
 | 
						|
.Fn lgammaf_r
 | 
						|
return appropriate values unless an argument is out of range.
 | 
						|
Overflow will occur for sufficiently large positive values, and
 | 
						|
non-positive integers.
 | 
						|
For large non-integer negative values,
 | 
						|
.Fn tgamma
 | 
						|
will underflow.
 | 
						|
.Sh SEE ALSO
 | 
						|
.Xr math 3
 | 
						|
.Sh STANDARDS
 | 
						|
The
 | 
						|
.Fn lgamma
 | 
						|
and
 | 
						|
.Fn tgamma
 | 
						|
functions are expected to conform to
 | 
						|
.St -isoC-99 .
 | 
						|
.Sh HISTORY
 | 
						|
The
 | 
						|
.Fn lgamma
 | 
						|
function appeared in
 | 
						|
.Bx 4.3 .
 | 
						|
The
 | 
						|
.Fn gamma
 | 
						|
function appeared in
 | 
						|
.Bx 4.4
 | 
						|
as a function which computed \(*G(x).
 | 
						|
This version was used in
 | 
						|
.Fx 1.1 .
 | 
						|
The name
 | 
						|
.Fn gamma
 | 
						|
was originally dedicated to the
 | 
						|
.Fn lgamma
 | 
						|
function,
 | 
						|
and that usage was restored by switching to Sun's fdlibm in
 | 
						|
.Fx 1.1.5 .
 | 
						|
The
 | 
						|
.Fn tgamma
 | 
						|
function appeared in
 | 
						|
.Fx 5.0 .
 |