diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-04-02 17:41:02 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-04-02 17:41:02 +0000 |
commit | a84e78c8b3c4de94b488fdc5321f71feeb99358f (patch) | |
tree | b4e8a63fd2eb10f4598a5af855e6462a9b06767e /NEWS | |
parent | 6f05bafebac30a389807979f8efbb709f84b486f (diff) | |
download | glibc-a84e78c8b3c4de94b488fdc5321f71feeb99358f.tar.gz glibc-a84e78c8b3c4de94b488fdc5321f71feeb99358f.tar.xz glibc-a84e78c8b3c4de94b488fdc5321f71feeb99358f.zip |
Fix catan, catanh, __ieee754_logf in round-downward mode (bug 16799, bug 16800).
This patch fixes incorrect results from catan and catanh of certain special inputs in round-downward mode (bug 16799), and incorrect results of __ieee754_logf (+/-0) in round-downward mode (bug 16800) that show up through catan/catanh when tested in all rounding modes, but not directly in the testing for logf because the bug gets hidden by the wrappers. Both bugs involve a zero that should be +0 being -0 instead: one computed as (1-x)*(1+x) in the catan/catanh case, and one as (x-x) in the logf case. The fixes ensure positive zero is used. Testing of catan and catanh in all rounding modes is duly enabled. I expect there are various other bugs in special cases in __ieee754_* functions that are normally hidden by the wrappers but would show up for testing with -lieee (or in future with -fno-math-errno if we replace -lieee and _LIB_VERSION with compile-time redirection to new *_noerrno symbol names). Tested x86_64 and x86 and ulps updated accordingly. [BZ #16799] [BZ #16800] * math/s_catan.c (__catan): Avoid passing -0 denominator to atan2 with 0 numerator. * math/s_catanf.c (__catanf): Likewise. * math/s_catanh.c (__catanh): Likewise. * math/s_catanhf.c (__catanhf): Likewise. * math/s_catanhl.c (__catanhl): Likewise. * math/s_catanl.c (__catanl): Likewise. * sysdeps/ieee754/flt-32/e_logf.c (__ieee754_logf): Always divide by positive zero when computing -Inf result. * math/libm-test.inc (catan_test): Use ALL_RM_TEST. (catanh_test): Likewise. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/NEWS b/NEWS index 63e9303df2..c7114da7ab 100644 --- a/NEWS +++ b/NEWS @@ -14,7 +14,7 @@ Version 2.20 16611, 16613, 16623, 16632, 16634, 16639, 16642, 16648, 16649, 16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701, 16706, 16707, 16712, 16713, 16714, 16731, 16739, 16743, 16758, 16759, 16760, 16770, 16786, - 16789. + 16789, 16799, 16800. * Running the testsuite no longer terminates as soon as a test fails. Instead, a file tests.sum (xtests.sum from "make xcheck") is generated, |