This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/18956] powf inaccuracy
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Sat, 26 Sep 2015 00:28:09 +0000
- Subject: [Bug math/18956] powf inaccuracy
- Auto-submitted: auto-generated
- References: <bug-18956-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=18956
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via fa752c698146ca3e9f7747d33059fbef9bb02b0e (commit)
from 6ace39382120dd0668b2168591611f71b04ac8f3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fa752c698146ca3e9f7747d33059fbef9bb02b0e
commit fa752c698146ca3e9f7747d33059fbef9bb02b0e
Author: Joseph Myers <joseph@codesourcery.com>
Date: Sat Sep 26 00:27:06 2015 +0000
Fix powf inaccuracy (bug 18956).
The flt-32 version of powf can be inaccurate because of bugs in the
extra-precision calculation of (x-1)/(x+1) or (x-1.5)/(x+1.5) as part
of calculating log(x) with extra precision: a constant used (as part
of adding 1 or 1.5 through integer arithmetic) is incorrect, and then
the code fails to mask a computed high part before using it in
arithmetic that relies on s_h*t_h being exactly representable. This
patch fixes these bugs.
Tested for x86_64 and x86. x86_64 ulps for powf removed and
regenerated to reflect reduced ulps from the increased accuracy for
existing tests.
[BZ #18956]
* sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Add 0x00400000
not 0x0040000 for high bit of mantissa. Mask with 0xfffff000 when
extracting high part.
* math/auto-libm-test-in: Add another test of pow.
* math/auto-libm-test-out: Regenerated.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 10 ++++++++++
NEWS | 4 ++--
math/auto-libm-test-in | 1 +
math/auto-libm-test-out | 25 +++++++++++++++++++++++++
sysdeps/ieee754/flt-32/e_powf.c | 4 +++-
sysdeps/x86_64/fpu/libm-test-ulps | 16 ++++++++--------
6 files changed, 49 insertions(+), 11 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.