fix pow(+-0, inf) case http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1515.pdf
authorSzabolcs Nagy <nsz@port70.net>
Fri, 10 Apr 2015 23:55:53 +0000 (23:55 +0000)
committerSzabolcs Nagy <nsz@port70.net>
Fri, 10 Apr 2015 23:55:53 +0000 (23:55 +0000)
src/math/special/pow.h
src/math/special/powf.h
src/math/special/powl.h

index 8af17c4..fed7899 100644 (file)
@@ -11,7 +11,7 @@ T(RN,                  0x0p+0,                 -0x1p+0,                     inf,
 T(RN,                  0x0p+0,                 -0x1p+1,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                  0x0p+0,               -0x1.8p+1,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                  0x0p+0,                 -0x1p+2,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                  0x0p+0,                 -0x1p+1,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                  0x0p+0,               -0x1.8p+1,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                  0x0p+0,                 -0x1p+2,                     inf,          0x0p+0, DIVBYZERO)
-T(RN,                  0x0p+0,                    -inf,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                  0x0p+0,                    -inf,                     inf,          0x0p+0, 0)
 T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0, 0)
 T(RN,                 -0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
 T(RN,                 -0x0p+0,                0x1.8p+1,                 -0x0p+0,          0x0p+0, 0)
 T(RN,                 -0x0p+0,                     nan,                     nan,          0x0p+0, 0)
 T(RN,                 -0x0p+0,                     inf,                  0x0p+0,          0x0p+0, 0)
 T(RN,                 -0x0p+0,                0x1.8p+1,                 -0x0p+0,          0x0p+0, 0)
@@ -25,7 +25,7 @@ T(RN,                 -0x0p+0,                 -0x1p+0,                    -inf,
 T(RN,                 -0x0p+0,                 -0x1p+1,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                 -0x0p+0,               -0x1.8p+1,                    -inf,          0x0p+0, DIVBYZERO)
 T(RN,                 -0x0p+0,                 -0x1p+2,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                 -0x0p+0,                 -0x1p+1,                     inf,          0x0p+0, DIVBYZERO)
 T(RN,                 -0x0p+0,               -0x1.8p+1,                    -inf,          0x0p+0, DIVBYZERO)
 T(RN,                 -0x0p+0,                 -0x1p+2,                     inf,          0x0p+0, DIVBYZERO)
-T(RN,                 -0x0p+0,                    -inf,                     inf,          0x0p+0, DIVBYZERO)
+T(RN,                 -0x0p+0,                    -inf,                     inf,          0x0p+0, 0)
 T(RN,                     nan,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
 T(RN,                     inf,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
 T(RN,                    -inf,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
 T(RN,                     nan,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
 T(RN,                     inf,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
 T(RN,                    -inf,                  0x0p+0,                  0x1p+0,          0x0p+0, 0)
index bec842d..8c7d72d 100644 (file)
@@ -11,7 +11,7 @@ T(RN,          0x0p+0,         -0x1p+0,             inf,          0x0p+0, DIVBYZ
 T(RN,          0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
 T(RN,          0x0p+0,       -0x1.8p+1,             inf,          0x0p+0, DIVBYZERO)
 T(RN,          0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
 T(RN,          0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
 T(RN,          0x0p+0,       -0x1.8p+1,             inf,          0x0p+0, DIVBYZERO)
 T(RN,          0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
-T(RN,          0x0p+0,            -inf,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,            -inf,             inf,          0x0p+0, 0)
 T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
 T(RN,         -0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
 T(RN,         -0x0p+0,        0x1.8p+1,         -0x0p+0,          0x0p+0, 0)
 T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
 T(RN,         -0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
 T(RN,         -0x0p+0,        0x1.8p+1,         -0x0p+0,          0x0p+0, 0)
@@ -25,7 +25,7 @@ T(RN,         -0x0p+0,         -0x1p+0,            -inf,          0x0p+0, DIVBYZ
 T(RN,         -0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
 T(RN,         -0x0p+0,       -0x1.8p+1,            -inf,          0x0p+0, DIVBYZERO)
 T(RN,         -0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
 T(RN,         -0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
 T(RN,         -0x0p+0,       -0x1.8p+1,            -inf,          0x0p+0, DIVBYZERO)
 T(RN,         -0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
-T(RN,         -0x0p+0,            -inf,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,             inf,          0x0p+0, 0)
 T(RN,             nan,          0x0p+0,          0x1p+0,          0x0p+0, 0)
 T(RN,             inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
 T(RN,            -inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
 T(RN,             nan,          0x0p+0,          0x1p+0,          0x0p+0, 0)
 T(RN,             inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
 T(RN,            -inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
index 2e613c0..c0e914c 100644 (file)
@@ -11,7 +11,7 @@ T(RN,                        0x0p+0L,                       -0x1p+0L,
 T(RN,                        0x0p+0L,                       -0x1p+1L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                        0x0p+0L,                     -0x1.8p+1L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                        0x0p+0L,                       -0x1p+2L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                        0x0p+0L,                       -0x1p+1L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                        0x0p+0L,                     -0x1.8p+1L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                        0x0p+0L,                       -0x1p+2L,                            inf,          0x0p+0, DIVBYZERO)
-T(RN,                        0x0p+0L,                           -inf,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                        0x0p+0L,                           -inf,                            inf,          0x0p+0, 0)
 T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
 T(RN,                       -0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
 T(RN,                       -0x0p+0L,                      0x1.8p+1L,                       -0x0p+0L,          0x0p+0, 0)
 T(RN,                       -0x0p+0L,                            nan,                            nan,          0x0p+0, 0)
 T(RN,                       -0x0p+0L,                            inf,                        0x0p+0L,          0x0p+0, 0)
 T(RN,                       -0x0p+0L,                      0x1.8p+1L,                       -0x0p+0L,          0x0p+0, 0)
@@ -25,7 +25,7 @@ T(RN,                       -0x0p+0L,                       -0x1p+0L,
 T(RN,                       -0x0p+0L,                       -0x1p+1L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                       -0x0p+0L,                     -0x1.8p+1L,                           -inf,          0x0p+0, DIVBYZERO)
 T(RN,                       -0x0p+0L,                       -0x1p+2L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                       -0x0p+0L,                       -0x1p+1L,                            inf,          0x0p+0, DIVBYZERO)
 T(RN,                       -0x0p+0L,                     -0x1.8p+1L,                           -inf,          0x0p+0, DIVBYZERO)
 T(RN,                       -0x0p+0L,                       -0x1p+2L,                            inf,          0x0p+0, DIVBYZERO)
-T(RN,                       -0x0p+0L,                           -inf,                            inf,          0x0p+0, DIVBYZERO)
+T(RN,                       -0x0p+0L,                           -inf,                            inf,          0x0p+0, 0)
 T(RN,                            nan,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
 T(RN,                            inf,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
 T(RN,                           -inf,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
 T(RN,                            nan,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
 T(RN,                            inf,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)
 T(RN,                           -inf,                        0x0p+0L,                        0x1p+0L,          0x0p+0, 0)