]> sourceware.org Git - glibc.git/commit
Fix x86_64 / x86 powl inaccuracy for integer exponents (bug 19848).
authorJoseph Myers <joseph@codesourcery.com>
Thu, 24 Mar 2016 01:32:52 +0000 (01:32 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 24 Mar 2016 01:32:52 +0000 (01:32 +0000)
commitc898991d8bcfacc825097ba389ffccc5367c2b2d
treeef1f3fec885e5e5ed89048016ffe8b8b2c0e8393
parent7e1ff08c260ae105208edb4e778e50525dff05d3
Fix x86_64 / x86 powl inaccuracy for integer exponents (bug 19848).

Bug 19848 reports cases where powl on x86 / x86_64 has error
accumulation, for small integer exponents, larger than permitted by
glibc's accuracy goals, at least in some rounding modes.  This patch
further restricts the exponent range for which the
small-integer-exponent logic is used to limit the possible error
accumulation.

Tested for x86_64 and x86 and ulps updated accordingly.

[BZ #19848]
* sysdeps/i386/fpu/e_powl.S (p3): Rename to p2 and change value
from 8 to 4.
(__ieee754_powl): Compare integer exponent against 4 not 8.
* sysdeps/x86_64/fpu/e_powl.S (p3): Rename to p2 and change value
from 8 to 4.
(__ieee754_powl): Compare integer exponent against 4 not 8.
* math/auto-libm-test-in: Add more tests of pow.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
ChangeLog
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/i386/fpu/e_powl.S
sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
sysdeps/x86_64/fpu/e_powl.S
sysdeps/x86_64/fpu/libm-test-ulps
This page took 0.043722 seconds and 5 git commands to generate.