Home | History | Annotate | Download | only in fdlibm
      1 
      2 /* @(#)w_lgamma.c 1.3 95/01/18 */
      3 /*
      4  * ====================================================
      5  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
      6  *
      7  * Developed at SunSoft, 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 ieee_lgamma(double x)
     16  * Return the logarithm of the Gamma function of x.
     17  *
     18  * Method: call __ieee754_lgamma_r
     19  */
     20 
     21 #include "fdlibm.h"
     22 
     23 extern int signgam;
     24 
     25 #ifdef __STDC__
     26 	double ieee_lgamma(double x)
     27 #else
     28 	double ieee_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(!ieee_finite(y)&&ieee_finite(x)) {
     39             if(ieee_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 }
     47