diff options
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_pow.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/k_standard.c | 30 |
2 files changed, 2 insertions, 31 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c index bd758b5979..db6ecf76e5 100644 --- a/sysdeps/ieee754/dbl-64/e_pow.c +++ b/sysdeps/ieee754/dbl-64/e_pow.c @@ -73,7 +73,8 @@ __ieee754_pow (double x, double y) { /* of y */ qx = u.i[HIGH_HALF] & 0x7fffffff; /* Is x a NaN? */ - if (((qx == 0x7ff00000) && (u.i[LOW_HALF] != 0)) || (qx > 0x7ff00000)) + if ((((qx == 0x7ff00000) && (u.i[LOW_HALF] != 0)) || (qx > 0x7ff00000)) + && y != 0) return x; if (y == 1.0) return x; diff --git a/sysdeps/ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c index c8aebbff90..b100b3e351 100644 --- a/sysdeps/ieee754/k_standard.c +++ b/sysdeps/ieee754/k_standard.c @@ -60,7 +60,6 @@ static double zero = 0.0; /* used as const */ * 17-- log(x<0) * 18-- log10(0) * 19-- log10(x<0) - * 20-- pow(0.0,0.0) * 21-- pow(x,y) overflow * 22-- pow(x,y) underflow * 23-- pow(0,negative) @@ -82,7 +81,6 @@ static double zero = 0.0; /* used as const */ * 39-- yn(x>X_TLOSS, n) * 40-- tgamma(finite) overflow * 41-- tgamma(-integer) - * 42-- pow(NaN,0.0) * 43-- +0**neg * 44-- exp2 overflow * 45-- exp2 underflow @@ -461,20 +459,6 @@ __kernel_standard(double x, double y, int type) __set_errno (EDOM); } break; - case 20: - case 120: - case 220: - /* pow(0.0,0.0) */ - /* error only if _LIB_VERSION == _SVID_ */ - exc.type = DOMAIN; - exc.name = CSTR ("pow"); - exc.retval = zero; - if (_LIB_VERSION != _SVID_) exc.retval = 1.0; - else if (!matherr(&exc)) { - (void) WRITE2("pow(0,0): DOMAIN error\n", 23); - __set_errno (EDOM); - } - break; case 21: case 121: case 221: @@ -845,20 +829,6 @@ __kernel_standard(double x, double y, int type) __set_errno (EDOM); } break; - case 42: - case 142: - case 242: - /* pow(NaN,0.0) */ - /* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */ - exc.type = DOMAIN; - exc.name = CSTR ("pow"); - exc.retval = x; - if (_LIB_VERSION == _IEEE_ || - _LIB_VERSION == _POSIX_) exc.retval = 1.0; - else if (!matherr(&exc)) { - __set_errno (EDOM); - } - break; case 44: case 144: |