]> sourceware.org Git - glibc.git/commit
Improve float range reduction accuracy near pi/2 (bug 21094).
authorJoseph Myers <joseph@codesourcery.com>
Wed, 15 Mar 2017 22:00:54 +0000 (22:00 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 15 Mar 2017 22:00:54 +0000 (22:00 +0000)
commite4e52ff059f46472145433d2bd003d5383f89e82
treec5044e3b2e2f98778087319e79d308bd817e9a75
parent5d20a49aaccef5ef7adac93d5ca159f6b7ba0105
Improve float range reduction accuracy near pi/2 (bug 21094).

Bug 21094 reports 3ulp errors of cosf and tanf for certain arguments
near pi/2 arising from the use of an insufficiently accurate range
reduction.  (To be clear, this is a quality-of-implementation issue
relating to the apparent intent of those particular cosf and tanf
implementations; 3ulp is within the general glibc accuracy goals, so
not inherently a bug.)

This patch fixes that error by making a wider range of cases use the
existing more accurate range reduction for arguments close to pi/2.
The wider range of values is still narrow enough for the "z -=
pio2_2;" in the more accurate case to be exact, as the code expects.

Tested for x86_64, x86 and mips64; no ulps updates needed (but at
least on mips64, the larger ulps were seen if the tests were added
without the substantive fix).

[BZ #21094]
* sysdeps/ieee754/flt-32/e_rem_pio2f.c (__ieee754_rem_pio2f): Use
24+24+24-bit pi for wider range of values around pi/2.
* math/auto-libm-test-in: Add more tests of cos and tan.
* math/auto-libm-test-out-cos: Regenerated.
* math/auto-libm-test-out-tan: Likewise.
ChangeLog
math/auto-libm-test-in
math/auto-libm-test-out-cos
math/auto-libm-test-out-tan
sysdeps/ieee754/flt-32/e_rem_pio2f.c
This page took 0.038923 seconds and 5 git commands to generate.