source: trunk/sys/libm/w_lgamma.c @ 50

Last change on this file since 50 was 1, checked in by alain, 8 years ago

First import

File size: 1.1 KB
Line 
1
2/* @(#)w_lgamma.c 5.1 93/09/24 */
3/*
4 * ====================================================
5 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
6 *
7 * Developed at SunPro, a Sun Microsystems, Inc. business.
8 * Permission to use, copy, modify, and distribute this
9 * software is freely granted, provided that this notice
10 * is preserved.
11 * ====================================================
12 *
13 */
14
15/* double lgamma(double x)
16 * Return the logarithm of the Gamma function of x.
17 *
18 * Method: call __ieee754_lgamma_r
19 */
20
21#include <libm/fdlibm.h>
22
23//extern int signgam;
24
25#ifdef __STDC__
26        double lgamma(double x)
27#else
28        double lgamma(x)
29        double x;
30#endif
31{
32#ifdef _IEEE_LIBM
33        return __ieee754_lgamma_r(x,&signgam);
34#else
35        double y;
36        y = __ieee754_lgamma_r(x,&signgam);
37        if(_LIB_VERSION == _IEEE_) return y;
38        if(!finite(y)&&finite(x)) {
39            if(floor(x)==x&&x<=0.0)
40                return __kernel_standard(x,x,15); /* lgamma pole */
41            else
42                return __kernel_standard(x,x,14); /* lgamma overflow */
43        } else
44            return y;
45#endif
46}             
Note: See TracBrowser for help on using the repository browser.