This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/17803] scalblnl differs from scabnl and ldexpl (with radix 2)
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Mon, 12 Jan 2015 23:03:24 +0000
- Subject: [Bug math/17803] scalblnl differs from scabnl and ldexpl (with radix 2)
- Auto-submitted: auto-generated
- References: <bug-17803-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=17803
--- Comment #2 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 5a9e4c09a2601a8100ea9a1f7bc0360782cd1625 (commit)
from 34e93d6c76b7a6eaf94697a172b958704fd33396 (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=5a9e4c09a2601a8100ea9a1f7bc0360782cd1625
commit 5a9e4c09a2601a8100ea9a1f7bc0360782cd1625
Author: Joseph Myers <joseph@codesourcery.com>
Date: Mon Jan 12 23:02:14 2015 +0000
Fix ldbl-96 scalblnl underflowing results (bug 17803).
The ldbl-96 implementation of scalblnl (used for x86_64 and ia64) uses
a condition k <= -63 to determine when a standard underflowing result
tiny*__copysignl(tiny,x) should be returned. However, that condition
corresponds to values with exponent -16446 or less, and in the case of
-16446, the correct result for round-to-nearest depends on whether the
value is exactly 0x1p-16446 (half the least subnormal) or more than
that. This patch fixes the bug by changing the condition to k <= -64
and accordingly adjusting the exponent by 64 not 63 when converting to
a normal value.
Tested for x86_64.
[BZ #17803]
* sysdeps/ieee754/ldbl-96/s_scalblnl.c (twom63): Rename to
twom64. Adjust value to 0x1p-64L.
(__scalblnl): Only return standard underflowing result for K <=
-64 not K <= -63; adjust exponent for underflowing result by 64
not 63.
* math/libm-test.inc (scalbn_test_data): Add more tests.
(scalbln_test_data): Likewise.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 ++++++++
NEWS | 2 +-
math/libm-test.inc | 38 ++++++++++++++++++++++++++++++++++
sysdeps/ieee754/ldbl-96/s_scalblnl.c | 8 +++---
4 files changed, 52 insertions(+), 5 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.