From: David S. Miller Date: Sun, 25 May 2014 01:58:01 +0000 (-0700) Subject: Fix excessive ULP for y1_upward (0x2p+0) in test-float and test-ifloat. X-Git-Tag: glibc-2.20~400 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=30f3d07cbbde199b1a0b2c3e983f0f0546e7ea45;p=platform%2Fupstream%2Fglibc.git Fix excessive ULP for y1_upward (0x2p+0) in test-float and test-ifloat. * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Force computations to occur in round to nearest mode when |x| >= 2.0 --- diff --git a/ChangeLog b/ChangeLog index 818dd07..2f8ca80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-05-31 David S. Miller + + * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Force computations + to occur in round to nearest mode when |x| >= 2.0 + 2014-05-30 Richard Henderson * sysdeps/unix/sysv/linux/aarch64/sysdep.h (PSEUDO_RET): Remove. diff --git a/sysdeps/ieee754/flt-32/e_j1f.c b/sysdeps/ieee754/flt-32/e_j1f.c index cb9f97f..a180968 100644 --- a/sysdeps/ieee754/flt-32/e_j1f.c +++ b/sysdeps/ieee754/flt-32/e_j1f.c @@ -107,6 +107,7 @@ __ieee754_y1f(float x) return -HUGE_VALF+x; /* -inf and overflow exception. */ if(__builtin_expect(hx<0, 0)) return zero/(zero*x); if(ix >= 0x40000000) { /* |x| >= 2.0 */ + SET_RESTORE_ROUNDF (FE_TONEAREST); __sincosf (x, &s, &c); ss = -s-c; cc = s-c;