]> git.ipfire.org Git - thirdparty/glibc.git/blame - math/w_lgammaf.c
This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use...
[thirdparty/glibc.git] / math / w_lgammaf.c
CommitLineData
f7eac6eb
RM
1/* w_lgammaf.c -- float version of w_lgamma.c.
2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
3 */
4
5/*
6 * ====================================================
7 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
8 *
9 * Developed at SunPro, a Sun Microsystems, Inc. business.
10 * Permission to use, copy, modify, and distribute this
356d7100 11 * software is freely granted, provided that this notice
f7eac6eb
RM
12 * is preserved.
13 * ====================================================
14 */
15
9d13fb24 16#include <math.h>
9277c064 17#include <math_private.h>
f7eac6eb 18
0ac5ae23
UD
19float
20__lgammaf(float x)
f7eac6eb 21{
4a10c7fe 22 int local_signgam = 0;
0ac5ae23
UD
23 float y = __ieee754_lgammaf_r(x,
24 _LIB_VERSION != _ISOC_
25 /* ISO C99 does not define the
26 global variable. */
27 ? &signgam
28 : &local_signgam);
d81f90cc
WD
29 if(__builtin_expect(!isfinite(y), 0)
30 && isfinite(x) && _LIB_VERSION != _IEEE_)
0ac5ae23
UD
31 return __kernel_standard_f(x, x,
32 __floorf(x)==x&&x<=0.0f
33 ? 115 /* lgamma pole */
34 : 114); /* lgamma overflow */
35
36 return y;
356d7100 37}
f7eac6eb 38weak_alias (__lgammaf, lgammaf)
e852e889
UD
39strong_alias (__lgammaf, __gammaf)
40weak_alias (__gammaf, gammaf)