mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Fix dbl-64 hypot spurious underflows (bug 16314).
This commit is contained in:
parent
c88769dda4
commit
6432a5409c
@ -1,5 +1,12 @@
|
||||
2013-12-17 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #16314]
|
||||
* sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Adjust up
|
||||
values below 2**-450, not 2**-500.
|
||||
* math/auto-libm-test-in: Don't allow spurious underflow from
|
||||
hypot.
|
||||
* math/auto-libm-test-out: Regenerated.
|
||||
|
||||
[BZ #16316]
|
||||
[BZ #16330]
|
||||
* sysdeps/ieee754/dbl-64/e_hypot.c (__ieee754_hypot): Update
|
||||
|
2
NEWS
2
NEWS
@ -22,7 +22,7 @@ Version 2.19
|
||||
15988, 15997, 16032, 16034, 16036, 16037, 16038, 16041, 16055, 16071,
|
||||
16072, 16074, 16077, 16078, 16103, 16112, 16143, 16144, 16146, 16150,
|
||||
16151, 16153, 16167, 16172, 16195, 16214, 16245, 16271, 16274, 16283,
|
||||
16289, 16316, 16330.
|
||||
16289, 16314, 16316, 16330.
|
||||
|
||||
* The public headers no longer use __unused nor __block. This change is to
|
||||
support compiling programs that are derived from BSD sources and use
|
||||
|
@ -302,8 +302,7 @@ hypot -5.7e7 0
|
||||
hypot 0.75 1.25
|
||||
hypot 1.0 0x1p-61
|
||||
hypot 0x1p+0 0x1.fp-129
|
||||
# Bug 16314: spurious underflow exception may occur.
|
||||
hypot 0x1.23456789abcdef0123456789ab8p-500 0x1.23456789abcdef0123456789ab8p-500 spurious-underflow:dbl-64
|
||||
hypot 0x1.23456789abcdef0123456789ab8p-500 0x1.23456789abcdef0123456789ab8p-500
|
||||
hypot 0x3p125 0x4p125 no-test-inline:flt-32
|
||||
hypot 0x1.234566p-126 0x1.234566p-126 no-test-inline:flt-32
|
||||
hypot 0x3p1021 0x4p1021 no-test-inline:dbl-64
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -89,7 +89,7 @@ __ieee754_hypot (double x, double y)
|
||||
SET_HIGH_WORD (a, ha);
|
||||
SET_HIGH_WORD (b, hb);
|
||||
}
|
||||
if (__builtin_expect (hb < 0x20b00000, 0)) /* b < 2**-500 */
|
||||
if (__builtin_expect (hb < 0x23d00000, 0)) /* b < 2**-450 */
|
||||
{
|
||||
if (hb <= 0x000fffff) /* subnormal b or 0 */
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user