source: trunk/sys/libm/w_gamma.c @ 278

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

First import

File size: 1.1 KB
RevLine 
[1]1
2/* @(#)w_gamma.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 gamma(double x)
16 * Return the logarithm of the Gamma function of x.
17 *
18 * Method: call gamma_r
19 */
20
21#include <libm/fdlibm.h>
22
23//extern int signgam;
24
25#ifdef __STDC__
26        double gamma(double x)
27#else
28        double gamma(x)
29        double x;
30#endif
31{
32#ifdef _IEEE_LIBM
33        return __ieee754_gamma_r(x,&signgam);
34#else
35        double y;
36        y = __ieee754_gamma_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,41); /* gamma pole */
41            else
42                return __kernel_standard(x,x,40); /* gamma overflow */
43        } else
44            return y;
45#endif
46}             
Note: See TracBrowser for help on using the repository browser.