mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 23:30:07 +00:00
Fix ldbl-128ibm powl spurious underflows.
This commit is contained in:
parent
1468ded38e
commit
ef1e0867c0
@ -1,5 +1,10 @@
|
||||
2012-11-22 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #14811]
|
||||
* sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Saturate
|
||||
nonzero exponents with absolute value below 0x1p-117 to +/-
|
||||
0x1p-117.
|
||||
|
||||
[BZ #14869]
|
||||
* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl): Scale
|
||||
up arguments below 2**-450, not just those below 2**-500.
|
||||
|
@ -149,7 +149,7 @@ __ieee754_powl (long double x, long double y)
|
||||
{
|
||||
long double z, ax, z_h, z_l, p_h, p_l;
|
||||
long double y1, t1, t2, r, s, t, u, v, w;
|
||||
long double s2, s_h, s_l, t_h, t_l;
|
||||
long double s2, s_h, s_l, t_h, t_l, ay;
|
||||
int32_t i, j, k, yisint, n;
|
||||
u_int32_t ix, iy;
|
||||
int32_t hx, hy;
|
||||
@ -284,6 +284,10 @@ __ieee754_powl (long double x, long double y)
|
||||
return (hy > 0) ? huge * huge : tiny * tiny;
|
||||
}
|
||||
|
||||
ay = y > 0 ? y : -y;
|
||||
if (ay < 0x1p-117)
|
||||
y = y < 0 ? -0x1p-117 : 0x1p-117;
|
||||
|
||||
n = 0;
|
||||
/* take care subnormal number */
|
||||
if (ix < 0x00100000)
|
||||
|
Loading…
Reference in New Issue
Block a user