diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-05-14 12:37:24 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-05-14 12:37:24 +0000 |
commit | 01dbacd22a8d5e0053f8d0cf13a80286b6cfe79b (patch) | |
tree | 91adc1f6c05cc5dbfb6b3b55b7500fa9dae9fd0e /NEWS | |
parent | 913d03c864ea2547e97f8d2d30fc71a008d4d103 (diff) | |
download | glibc-01dbacd22a8d5e0053f8d0cf13a80286b6cfe79b.tar glibc-01dbacd22a8d5e0053f8d0cf13a80286b6cfe79b.tar.gz glibc-01dbacd22a8d5e0053f8d0cf13a80286b6cfe79b.tar.bz2 glibc-01dbacd22a8d5e0053f8d0cf13a80286b6cfe79b.zip |
Fix cacos (+Inf + finite*i) in round-downward mode (bug 16928).
According to C99/C11 Annex G, cacos applied to a value with real part
+Inf and finite imaginary part should produce a result with real part
+0. glibc wrongly produces a result with real part -0 in FE_DOWNWARD
mode. This patch fixes this by checking for zero results in the
relevant case of non-finite arguments (where there should never be a
result with -0 real part), and converts the tests of cacos to
ALL_RM_TEST.
Tested x86_64 and x86 and ulps updated accordingly.
[BZ #16928]
* math/s_cacos.c (__cacos): Ensure zero real part of result from
non-finite arguments is +0.
* math/s_cacosf.c (__cacosf): Likewise.
* math/s_cacosl.c (__cacosl): Likewise.
* math/libm-test.inc (cacos_test): Use ALL_RM_TEST.
* 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
@@ -17,7 +17,7 @@ Version 2.20 16713, 16714, 16731, 16739, 16740, 16743, 16754, 16758, 16759, 16760, 16770, 16786, 16789, 16791, 16799, 16800, 16815, 16823, 16824, 16831, 16838, 16854, 16876, 16877, 16885, 16888, 16890, 16912, 16916, 16922, - 16927, 16932. + 16927, 16928, 16932. * The minimum Linux kernel version that this version of the GNU C Library can be used with is 2.6.32. |