This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/17042] log2 (1) incorrect in round-downward mode
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Tue, 10 Jun 2014 12:08:15 +0000
- Subject: [Bug math/17042] log2 (1) incorrect in round-downward mode
- Auto-submitted: auto-generated
- References: <bug-17042-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=17042
--- 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 f8ba1b5654d876c8db4c9a020e6fa976d434f988 (commit)
from 2c3520d98d9773d9e092196c3c36150244eed1dd (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=f8ba1b5654d876c8db4c9a020e6fa976d434f988
commit f8ba1b5654d876c8db4c9a020e6fa976d434f988
Author: Joseph Myers <joseph@codesourcery.com>
Date: Tue Jun 10 12:07:15 2014 +0000
Fix log2 (1) in round-downward mode (bug 17042).
As with other issues of this kind, bug 17042 is log2 (1) wrongly
returning -0 instead of +0 in round-downward mode because of
implementations effectively in terms of log1p (x - 1). This patch
fixes the issue in the same way used for log and log10.
Tested x86_64 and x86 and ulps updated accordingly. Also tested for
mips64 to confirm a fix was needed for ldbl-128 and to validate that
fix (also applied to ldbl-128ibm since that version of log2l is
essentially the same as the ldbl-128 one).
[BZ #17042]
* sysdeps/i386/fpu/e_log2.S (__ieee754_log2): Take absolete value
when x - 1 is zero.
* sysdeps/i386/fpu/e_log2f.S (__ieee754_log2f): Likewise.
* sysdeps/i386/fpu/e_log2l.S (__ieee754_log2l): Likewise.
* sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Return
0.0L for an argument of 1.0L.
* sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l):
Likewise.
* sysdeps/x86_64/fpu/e_log2l.S (__ieee754_log2l): Take absolute
value when x - 1 is zero.
* math/libm-test.inc (log2_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 17 +++++++++++++++++
NEWS | 2 +-
math/libm-test.inc | 4 +---
sysdeps/i386/fpu/e_log2.S | 8 +++++++-
sysdeps/i386/fpu/e_log2f.S | 8 +++++++-
sysdeps/i386/fpu/e_log2l.S | 8 +++++++-
sysdeps/i386/fpu/libm-test-ulps | 16 ++++++++++++++++
sysdeps/ieee754/ldbl-128/e_log2l.c | 3 +++
sysdeps/ieee754/ldbl-128ibm/e_log2l.c | 3 +++
sysdeps/x86_64/fpu/e_log2l.S | 8 +++++++-
sysdeps/x86_64/fpu/libm-test-ulps | 22 ++++++++++++++++++++++
11 files changed, 91 insertions(+), 8 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.