aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/dbl-64/e_pow.c3
-rw-r--r--sysdeps/ieee754/k_standard.c30
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 bd758b5..db6ecf7 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 c8aebbf..b100b3e 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: