Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 19 Feb 2001 23:16:05 +0000 (23:16 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 19 Feb 2001 23:16:05 +0000 (23:16 +0000)
* sysdeps/ieee754/flt-32/e_powf.c: Handle x == +-1 correctly.
* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.

ChangeLog
sysdeps/ieee754/dbl-64/e_pow.c
sysdeps/ieee754/flt-32/e_powf.c

index 47e5e83..c099012 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2001-02-19  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/ieee754/flt-32/e_powf.c: Handle x == +-1 correctly.
+       * sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+
        * sysdeps/generic/e_scalb.c: Set invalid exception for invalid
        parameters.
        * sysdeps/generic/e_scalbf.c: New file.
index 1e1496f..73e8f47 100644 (file)
@@ -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)))
index 4798340..9f52080 100644 (file)
@@ -76,6 +76,10 @@ ivln2_l  =  7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
     /* y==zero: x**0 = 1 */
        if(iy==0) return one;
 
+    /* x==+-1 */
+       if(x == 1.0) return one;
+       if(x == -1.0 && isinf(y)) return one;
+
     /* +-NaN return x+y */
        if(ix > 0x7f800000 ||
           iy > 0x7f800000)