(j3.2006) 13.7.64 GAMMA has incomplete mathematical definition
Fred J. Tydeman
tydeman
Fri Oct 3 12:41:44 EDT 2008
On Fri, 03 Oct 2008 08:31:32 -0700, Aleksandar Donev wrote:
>> 2. Restrict the arguments of GAMMA and LOG_GAMMA to positive values?
>What does C's math library and common implementations do?
>We should not do more than what is already common---the point was not to
>add implemention burden but just add user portability.
C99 defines GAMMA and LOG_GAMMA for all real values.
There are no such functions for complex values.
C99, main body
7.12.8.3 The lgamma functions
Synopsis
1 #include <math.h>
double lgamma(double x);
float lgammaf(float x);
long double lgammal(long double x);
Description
2 The lgamma functions compute the natural logarithm of the absolute
value of gamma of x. A range error occurs if x is too large. A range
error may occur if x is a negative integer or zero.
Returns
3 The lgamma functions return log|G(x)|.
7.12.8.4 The tgamma functions
Synopsis
1 #include <math.h>
double tgamma(double x);
float tgammaf(float x);
long double tgammal(long double x);
Description
2 The tgamma functions compute the gamma function of x.A domain error
or range error may occur if x is a negative integer or zero. A range
error may occur if the magnitude of x is too large or too small.
Returns
3 The tgamma functions return G(x).
C99, Annex F (the IEEE-754 one)
F.9.5.3 The lgamma functions
1 -- lgamma(1) returns +0.
-- lgamma(2) returns +0.
-- lgamma(x) returns + INF and raises the "divide-by-zero"
floating-point exception for x a negative integer or zero.
-- lgamma(- INF ) returns + INF .
-- lgamma(+ INF ) returns + INF .
F.9.5.4 The tgamma functions
1 -- tgamma(+/-0) returns +/- INF and raises the "divide-by-zero"
floating-point exception.
-- tgamma(x) returns a NaN and raises the "invalid" floating-point
exception for x a negative integer.
-- tgamma(- INF ) returns a NaN and raises the "invalid"
floating-point exception.
-- tgamma(+ INF ) returns + INF .
---
Fred J. Tydeman Tydeman Consulting
tydeman at tybor.com Testing, numerics, programming
+1 (775) 358-9748 Vice-chair of PL22.11 (ANSI "C")
Sample C99+FPCE tests: http://www.tybor.com
Savers sleep well, investors eat well, spenders work forever.
More information about the J3
mailing list