From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 38589 invoked by alias); 26 Sep 2015 00:28:13 -0000 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org Received: (qmail 38563 invoked by uid 55); 26 Sep 2015 00:28:09 -0000 From: "cvs-commit at gcc dot gnu.org" To: glibc-bugs@sourceware.org Subject: [Bug math/18956] powf inaccuracy Date: Sat, 26 Sep 2015 00:28:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: math X-Bugzilla-Version: 2.22 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: security- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-09/txt/msg00330.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=18956 --- Comment #1 from 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 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.