| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | /* @(#)w_gamma.c 5.1 93/09/24 *//* * ==================================================== * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * * Developed at SunPro, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this * software is freely granted, provided that this notice * is preserved. * ==================================================== *//* double gamma(double x) * Return  the logarithm of the Gamma function of x or the Gamma function of x, * depending on the library mode. */#include "math.h"#include "math_private.h"libm_hidden_proto(signgam)#ifdef __STDC__	double tgamma(double x)#else	double tgamma(x)	double x;#endif{        double y;	int local_signgam;	y = __ieee754_gamma_r(x,&local_signgam);	if (local_signgam < 0) y = -y;#ifdef _IEEE_LIBM	return y;#else	if(_LIB_VERSION == _IEEE_) return y;	if(!finite(y)&&finite(x)) {	  if(floor(x)==x&&x<=0.0)	    return __kernel_standard(x,x,41); /* tgamma pole */	  else	    return __kernel_standard(x,x,40); /* tgamma overflow */	}	return y;#endif}libm_hidden_def(tgamma)
 |