diff options
Diffstat (limited to 'sysdeps/ieee754/dbl-64/e_pow.c')
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_pow.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c index 1e1496f00d..73e8f471f6 100644 --- a/sysdeps/ieee754/dbl-64/e_pow.c +++ b/sysdeps/ieee754/dbl-64/e_pow.c @@ -149,6 +149,10 @@ C[] = { /* y==zero: x**0 = 1 */ if((iy|ly)==0) return C[1]; + /* x==+-1 */ + if(x == 1.0) return C[1]; + if(x == -1.0 && isinf(y)) return C[1]; + /* +-NaN return x+y */ if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) || iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0))) |