1 /* w_lgammaf.c -- float version of w_lgamma.c.
2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
6 * ====================================================
7 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
9 * Developed at SunPro, a Sun Microsystems, Inc. business.
10 * Permission to use, copy, modify, and distribute this
11 * software is freely granted, provided that this notice
13 * ====================================================
16 #if defined(LIBM_SCCS) && !defined(lint)
17 static char rcsid
[] = "$NetBSD: w_lgammaf.c,v 1.3 1995/05/10 20:49:30 jtc Exp $";
21 #include "math_private.h"
24 float __lgammaf(float x
)
31 return __ieee754_lgammaf_r(x
,&signgam
);
34 int local_signgam
= 0;
35 y
= __ieee754_lgammaf_r(x
,&local_signgam
);
36 if (_LIB_VERSION
!= _ISOC_
)
37 /* ISO C99 does not define the global variable. */
38 signgam
= local_signgam
;
39 if(_LIB_VERSION
== _IEEE_
) return y
;
40 if(!__finitef(y
)&&__finitef(x
)) {
41 if(__floorf(x
)==x
&&x
<=(float)0.0)
43 return (float)__kernel_standard((double)x
,(double)x
,115);
46 return (float)__kernel_standard((double)x
,(double)x
,114);
51 weak_alias (__lgammaf
, lgammaf
)
52 strong_alias (__lgammaf
, __gammaf
)
53 weak_alias (__gammaf
, gammaf
)