diff options
Diffstat (limited to 'sysdeps/libm-ieee754/w_pow.c')
-rw-r--r-- | sysdeps/libm-ieee754/w_pow.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sysdeps/libm-ieee754/w_pow.c b/sysdeps/libm-ieee754/w_pow.c index ea19e1f554..1711d71bda 100644 --- a/sysdeps/libm-ieee754/w_pow.c +++ b/sysdeps/libm-ieee754/w_pow.c @@ -43,7 +43,10 @@ if(y==0.0) return __kernel_standard(x,y,20); /* pow(0.0,0.0) */ if(__finite(y)&&y<0.0) - return __kernel_standard(x,y,23); /* pow(0.0,negative) */ + if (signbit (x) && signbit (z)) + return __kernel_standard(x,y,23); /* pow(-0.0,negative) */ + else + return __kernel_standard(x,y,43); /* pow(+0.0,negative) */ return z; } if(!__finite(z)) { |