diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-07-23 14:59:16 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-07-23 14:59:16 +0000 |
commit | cc60175e8cecbedb4c555379c3c667c9cf9420fa (patch) | |
tree | 69af14220d49051875cbe973110661bcc80c7bdd /sysdeps/libm-ieee754/w_gammaf.c | |
parent | 69050873152acb2d2bd2b77c82078259ed59e2e2 (diff) | |
download | glibc-cc60175e8cecbedb4c555379c3c667c9cf9420fa.tar.gz glibc-cc60175e8cecbedb4c555379c3c667c9cf9420fa.tar.xz glibc-cc60175e8cecbedb4c555379c3c667c9cf9420fa.zip |
Update.
1998-07-23 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/glob.c: Fix two problems with GLOB_DOOFFS. Reported by bwelling@anomaly.munge.com [PR libc/720]. * sysdeps/libm-ieee754/k_standard.c: Return NAN for libm not in SVID more for gamma(x) with x interger <= 0. Reported by Stephen L Moshier <moshier@mediaone.net>. * math/libm-test.c (gamma_test): Add test for gamma(-1) and gamma(0). Correct test for SVID version of gamma. * sysdeps/libm-ieee754/w_gamma.c: Use correct matherr call in SVID emulation mode. * sysdeps/libm-ieee754/w_gammaf.c: Likewise. * sysdeps/libm-ieee754/w_gammal.c: Likewise. * string/string.h: Don't use string function optimization for C++ as long as we use macros.
Diffstat (limited to 'sysdeps/libm-ieee754/w_gammaf.c')
-rw-r--r-- | sysdeps/libm-ieee754/w_gammaf.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/sysdeps/libm-ieee754/w_gammaf.c b/sysdeps/libm-ieee754/w_gammaf.c index 7d78a52908..bc251b3554 100644 --- a/sysdeps/libm-ieee754/w_gammaf.c +++ b/sysdeps/libm-ieee754/w_gammaf.c @@ -30,7 +30,18 @@ static char rcsid[] = "$NetBSD: w_gammaf.c,v 1.4 1995/11/20 22:06:48 jtc Exp $"; float y; #ifndef _IEEE_LIBM if (_LIB_VERSION == _SVID_) - y = __ieee754_lgammaf_r(x,&signgam); + { + y = __ieee754_lgammaf_r(x,&signgam); + + if(!__finitef(y)&&__finitef(x)) { + if(__floorf(x)==x&&x<=(float)0.0) + /* lgammaf pole */ + return (float)__kernel_standard((double)x,(double)x,115); + else + /* lgammaf overflow */ + return (float)__kernel_standard((double)x,(double)x,114); + } + } else { #endif @@ -41,16 +52,17 @@ static char rcsid[] = "$NetBSD: w_gammaf.c,v 1.4 1995/11/20 22:06:48 jtc Exp $"; return y; #else if(_LIB_VERSION == _IEEE_) return y; + + if(!__finitef(y)&&__finitef(x)) { + if(__floorf(x)==x&&x<=(float)0.0) + /* gammaf pole */ + return (float)__kernel_standard((double)x,(double)x,141); + else + /* gammaf overflow */ + return (float)__kernel_standard((double)x,(double)x,140); + } } - if(!__finitef(y)&&__finitef(x)) { - if(__floorf(x)==x&&x<=(float)0.0) - /* gammaf pole */ - return (float)__kernel_standard((double)x,(double)x,141); - else - /* gammaf overflow */ - return (float)__kernel_standard((double)x,(double)x,140); - } else - return y; + return y; #endif } weak_alias (__gammaf, gammaf) |