math: fix lrint, lround, nexttoward tests for ldbl==dbl and no fenv
authorSzabolcs Nagy <nsz@port70.net>
Thu, 15 Aug 2013 19:42:56 +0000 (19:42 +0000)
committerSzabolcs Nagy <nsz@port70.net>
Thu, 15 Aug 2013 19:42:56 +0000 (19:42 +0000)
15 files changed:
src/math/gen/util.c
src/math/special/llrint.h
src/math/special/llrintf.h
src/math/special/llrintl.h
src/math/special/llround.h
src/math/special/llroundf.h
src/math/special/llroundl.h
src/math/special/lrint.h
src/math/special/lrintf.h
src/math/special/lrintl.h
src/math/special/lround.h
src/math/special/lroundf.h
src/math/special/lroundl.h
src/math/special/nexttoward.h
src/math/special/nexttowardf.h

index 5b1aa48..10f912c 100644 (file)
@@ -73,7 +73,7 @@ char *dropcomm(char *buf)
        char *p = buf;
 
        for (; *p; p++)
-               if (*p == '/' && p[1] == '/') {
+               if ((*p == '/' && p[1] == '/') || *p == '#') {
                        *p = 0;
                        break;
                }
index dcd30e8..e450093 100644 (file)
@@ -11,8 +11,10 @@ T(RN,            -0x1.ffffp-1,          -1, INEXACT)
 T(RN,                0x1p-100,           0, INEXACT)
 T(RN,               -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                     nan,           0, INVALID)
 T(RN,                     inf,           0, INVALID)
 T(RN,                    -inf,           0, INVALID)
 T(RN,                0x1p+100,           0, INVALID)
 T(RN,               -0x1p+100,           0, INVALID)
+#endif
index bf04a27..01106e4 100644 (file)
@@ -11,8 +11,10 @@ T(RN,    -0x1.ffffp-1,          -1, INEXACT)
 T(RN,        0x1p-100,           0, INEXACT)
 T(RN,       -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,             nan,           0, INVALID)
 T(RN,             inf,           0, INVALID)
 T(RN,            -inf,           0, INVALID)
 T(RN,        0x1p+100,           0, INVALID)
 T(RN,       -0x1p+100,           0, INVALID)
+#endif
index 9943d53..1721db3 100644 (file)
@@ -11,8 +11,10 @@ T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
 T(RN,                      0x1p-100L,           0, INEXACT)
 T(RN,                     -0x1p-100L,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                            nan,           0, INVALID)
 T(RN,                            inf,           0, INVALID)
 T(RN,                           -inf,           0, INVALID)
 T(RN,                      0x1p+100L,           0, INVALID)
 T(RN,                     -0x1p+100L,           0, INVALID)
+#endif
index 2bf522a..d903739 100644 (file)
@@ -11,8 +11,10 @@ T(RN,            -0x1.ffffp-1,          -1, INEXACT)
 T(RN,                0x1p-100,           0, INEXACT)
 T(RN,               -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                     nan,           0, INVALID)
 T(RN,                     inf,           0, INVALID)
 T(RN,                    -inf,           0, INVALID)
 T(RN,                0x1p+100,           0, INVALID)
 T(RN,               -0x1p+100,           0, INVALID)
+#endif
index 4f9f8d0..a2f4fef 100644 (file)
@@ -11,8 +11,10 @@ T(RN,    -0x1.ffffp-1,          -1, INEXACT)
 T(RN,        0x1p-100,           0, INEXACT)
 T(RN,       -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,             nan,           0, INVALID)
 T(RN,             inf,           0, INVALID)
 T(RN,            -inf,           0, INVALID)
 T(RN,        0x1p+100,           0, INVALID)
 T(RN,       -0x1p+100,           0, INVALID)
+#endif
index 688ffbc..4d6ddad 100644 (file)
@@ -11,8 +11,10 @@ T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
 T(RN,                      0x1p-100L,           0, INEXACT)
 T(RN,                     -0x1p-100L,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                            nan,           0, INVALID)
 T(RN,                            inf,           0, INVALID)
 T(RN,                           -inf,           0, INVALID)
 T(RN,                      0x1p+100L,           0, INVALID)
 T(RN,                     -0x1p+100L,           0, INVALID)
+#endif
index dcd30e8..e450093 100644 (file)
@@ -11,8 +11,10 @@ T(RN,            -0x1.ffffp-1,          -1, INEXACT)
 T(RN,                0x1p-100,           0, INEXACT)
 T(RN,               -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                     nan,           0, INVALID)
 T(RN,                     inf,           0, INVALID)
 T(RN,                    -inf,           0, INVALID)
 T(RN,                0x1p+100,           0, INVALID)
 T(RN,               -0x1p+100,           0, INVALID)
+#endif
index bf04a27..01106e4 100644 (file)
@@ -11,8 +11,10 @@ T(RN,    -0x1.ffffp-1,          -1, INEXACT)
 T(RN,        0x1p-100,           0, INEXACT)
 T(RN,       -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,             nan,           0, INVALID)
 T(RN,             inf,           0, INVALID)
 T(RN,            -inf,           0, INVALID)
 T(RN,        0x1p+100,           0, INVALID)
 T(RN,       -0x1p+100,           0, INVALID)
+#endif
index 9943d53..1721db3 100644 (file)
@@ -11,8 +11,10 @@ T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
 T(RN,                      0x1p-100L,           0, INEXACT)
 T(RN,                     -0x1p-100L,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                            nan,           0, INVALID)
 T(RN,                            inf,           0, INVALID)
 T(RN,                           -inf,           0, INVALID)
 T(RN,                      0x1p+100L,           0, INVALID)
 T(RN,                     -0x1p+100L,           0, INVALID)
+#endif
index 2bf522a..d903739 100644 (file)
@@ -11,8 +11,10 @@ T(RN,            -0x1.ffffp-1,          -1, INEXACT)
 T(RN,                0x1p-100,           0, INEXACT)
 T(RN,               -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                     nan,           0, INVALID)
 T(RN,                     inf,           0, INVALID)
 T(RN,                    -inf,           0, INVALID)
 T(RN,                0x1p+100,           0, INVALID)
 T(RN,               -0x1p+100,           0, INVALID)
+#endif
index 4f9f8d0..a2f4fef 100644 (file)
@@ -11,8 +11,10 @@ T(RN,    -0x1.ffffp-1,          -1, INEXACT)
 T(RN,        0x1p-100,           0, INEXACT)
 T(RN,       -0x1p-100,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,             nan,           0, INVALID)
 T(RN,             inf,           0, INVALID)
 T(RN,            -inf,           0, INVALID)
 T(RN,        0x1p+100,           0, INVALID)
 T(RN,       -0x1p+100,           0, INVALID)
+#endif
index 688ffbc..4d6ddad 100644 (file)
@@ -11,8 +11,10 @@ T(RN,                  -0x1.ffffp-1L,          -1, INEXACT)
 T(RN,                      0x1p-100L,           0, INEXACT)
 T(RN,                     -0x1p-100L,           0, INEXACT)
 // TODO: return value is unspecified
+#if INVALID
 T(RN,                            nan,           0, INVALID)
 T(RN,                            inf,           0, INVALID)
 T(RN,                           -inf,           0, INVALID)
 T(RN,                      0x1p+100L,           0, INVALID)
 T(RN,                     -0x1p+100L,           0, INVALID)
+#endif
index e787221..aa3560a 100644 (file)
@@ -2,14 +2,16 @@ T(RN, 0x1.fffffffffffffp+1023,                            inf,
 T(RN, 0x1.fffffffffffffp+1023,                        0x0p+0L, 0x1.ffffffffffffep+1023,          0x0p+0, 0)
 T(RN,               0x1p-1074,                           -inf,                  0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
 T(RN,               0x1p-1074,                            inf,               0x1p-1073,          0x0p+0, INEXACT|UNDERFLOW)
+#if LDBL_MANT_DIG > DBL_MANT_DIG
 T(RN,               0x1p-1074,     0x1.ffffffffffffffep-1075L,                  0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
 T(RN,               0x1p-1074,     0x1.000000000000002p-1074L,               0x1p-1073,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,                  0x1p+0,       0x1.0000000000000002p+0L,    0x1.0000000000001p+0,          0x0p+0, 0)
+T(RN,                  0x1p+0,       0x1.fffffffffffffffep-1L,    0x1.fffffffffffffp-1,          0x0p+0, 0)
+#endif
 T(RN, 0x1.ffffffffffffcp-1023,                        0x1p+0L, 0x1.ffffffffffffep-1023,          0x0p+0, INEXACT|UNDERFLOW)
 T(RN, 0x1.ffffffffffffep-1023,                        0x1p+0L,               0x1p-1022,          0x0p+0, 0)
 T(RN, 0x1.0000000000001p-1022,                        0x0p+0L,               0x1p-1022,          0x0p+0, 0)
 T(RN,               0x1p-1022,                        0x0p+0L, 0x1.ffffffffffffep-1023,          0x0p+0, INEXACT|UNDERFLOW)
-T(RN,                  0x1p+0,       0x1.0000000000000002p+0L,    0x1.0000000000001p+0,          0x0p+0, 0)
-T(RN,                  0x1p+0,       0x1.fffffffffffffffep-1L,    0x1.fffffffffffffp-1,          0x0p+0, 0)
 T(RN,                  0x1p+0,                        0x1p+0L,                  0x1p+0,          0x0p+0, 0)
 T(RN,                  0x1p+0,                       -0x1p+0L,    0x1.fffffffffffffp-1,          0x0p+0, 0)
 T(RN,                 -0x1p+0,                        0x1p+0L,   -0x1.fffffffffffffp-1,          0x0p+0, 0)
index 9f80551..01aacc4 100644 (file)
@@ -2,14 +2,20 @@ T(RN, 0x1.fffffep+127,                            inf,             inf,
 T(RN, 0x1.fffffep+127,                        0x0p+0L, 0x1.fffffcp+127,          0x0p+0, 0)
 T(RN,        0x1p-149,                           -inf,          0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
 T(RN,        0x1p-149,                            inf,        0x1p-148,          0x0p+0, INEXACT|UNDERFLOW)
+#if LDBL_MANT_DIG > DBL_MANT_DIG
 T(RN,        0x1p-149,      0x1.ffffffffffffffep-150L,          0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
 T(RN,        0x1p-149,      0x1.000000000000002p-149L,        0x1p-148,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x1p+0,       0x1.0000000000000002p+0L,   0x1.000002p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,       0x1.fffffffffffffffep-1L,   0x1.fffffep-1,          0x0p+0, 0)
+#endif
+T(RN,        0x1p-149,        0x1.fffffffffffffp-150L,          0x0p+0,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,        0x1p-149,        0x1.0000000000001p-149L,        0x1p-148,          0x0p+0, INEXACT|UNDERFLOW)
+T(RN,          0x1p+0,          0x1.0000000000001p+0L,   0x1.000002p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1.fffffffffffffp-1L,   0x1.fffffep-1,          0x0p+0, 0)
 T(RN, 0x1.fffff8p-127,                        0x1p+0L, 0x1.fffffcp-127,          0x0p+0, INEXACT|UNDERFLOW)
 T(RN, 0x1.fffffcp-127,                        0x1p+0L,        0x1p-126,          0x0p+0, 0)
 T(RN, 0x1.000002p-126,                        0x0p+0L,        0x1p-126,          0x0p+0, 0)
 T(RN,        0x1p-126,                        0x0p+0L, 0x1.fffffcp-127,          0x0p+0, INEXACT|UNDERFLOW)
-T(RN,          0x1p+0,       0x1.0000000000000002p+0L,   0x1.000002p+0,          0x0p+0, 0)
-T(RN,          0x1p+0,       0x1.fffffffffffffffep-1L,   0x1.fffffep-1,          0x0p+0, 0)
 T(RN,          0x1p+0,                        0x1p+0L,          0x1p+0,          0x0p+0, 0)
 T(RN,          0x1p+0,                       -0x1p+0L,   0x1.fffffep-1,          0x0p+0, 0)
 T(RN,         -0x1p+0,                        0x1p+0L,  -0x1.fffffep-1,          0x0p+0, 0)