math tests: fma underflow cases
authorSzabolcs Nagy <nsz@port70.net>
Sun, 19 May 2013 17:28:21 +0000 (17:28 +0000)
committerSzabolcs Nagy <nsz@port70.net>
Sun, 19 May 2013 17:28:21 +0000 (17:28 +0000)
src/math/special/fma.h
src/math/special/fmaf.h
src/math/special/fmal.h

index 2efa8e1..b7b2371 100644 (file)
@@ -830,3 +830,11 @@ T(RU,    0x1.c4ae75976e35cp+0,   -0x1.11c329dd1160cp+0,    0x1.9993f5e13c9bdp-8,
 T(RU,   -0x1.85f81f88fa3c4p+0,   -0x1.17648a494fa18p-1,    0x1.37d305113b48p-10,    0x1.aa367b7490e58p-1,   0x1.000006p-1, INEXACT)
 T(RU,   -0x1.311f2b4319efcp+0,    0x1.abbb5272e3d18p-1,   0x1.35841b7bdbcfep-10,    -0x1.fd337f24b39ep-1,   0x1.ffffecp-2, INEXACT)
 T(RU,     0x1.ab94369a9a0dp-1,    0x1.9d1e0e0aa3bacp+0,   0x1.0a63ca87cfa78p-11,    0x1.592173ee296b7p+0,   0x1.000002p-1, INEXACT)
+T(RN,     0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,     0x1.000000001p-1030,        -0x1p-28, INEXACT|UNDERFLOW)
+T(RN,    -0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,    -0x1.000000003p-1030,         0x1p-28, INEXACT|UNDERFLOW)
+T(RD,     0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,     0x1.000000001p-1030,        -0x1p-28, INEXACT|UNDERFLOW)
+T(RD,    -0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,  -0x1.00000000301p-1030,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RU,     0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,   0x1.00000000101p-1030,          0x1p+0, INEXACT|UNDERFLOW)
+T(RU,    -0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,    -0x1.000000003p-1030,         0x1p-28, INEXACT|UNDERFLOW)
+T(RZ,     0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,     0x1.000000001p-1030,        -0x1p-28, INEXACT|UNDERFLOW)
+T(RZ,    -0x1.000000001p-1000,       0x1.000000001p-30,              -0x1p-1066,    -0x1.000000003p-1030,         0x1p-28, INEXACT|UNDERFLOW)
index af5ac49..c6bc645 100644 (file)
@@ -35,3 +35,13 @@ T(RN,             inf,          0x0p+0,             nan,             nan,
 T(RN,          0x0p+0,             inf,             nan,             nan,          0x0p+0, INVALID)
 T(RN,            -inf,          0x0p+0,             nan,             nan,          0x0p+0, INVALID)
 T(RN,          0x0p+0,            -inf,             nan,             nan,          0x0p+0, INVALID)
+T(RN,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-149,        -0x1p-91, INEXACT|UNDERFLOW)
+T(RN,          0x1p+0,          0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RD,          0x1p+0,          0x1p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RD,          0x1p+0,         -0x1p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RD,         -0x1p+0,         -0x1p+0,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RD,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-149,        -0x1p-91, INEXACT|UNDERFLOW)
+T(RU,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-148,          0x1p+0, INEXACT|UNDERFLOW)
+T(RZ,        0x1p-120,        0x1p-120,        0x1p-149,        0x1p-149,        -0x1p-91, INEXACT|UNDERFLOW)
index e05ec5c..5a453b9 100644 (file)
@@ -35,3 +35,11 @@ T(RN,                            inf,                        0x0p+0L,
 T(RN,                        0x0p+0L,                            inf,                            nan,                            nan,          0x0p+0, INVALID)
 T(RN,                           -inf,                        0x0p+0L,                            nan,                            nan,          0x0p+0, INVALID)
 T(RN,                        0x0p+0L,                           -inf,                            nan,                            nan,          0x0p+0, INVALID)
+T(RN,         0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,         0x1.0000000001p-16400L,        -0x1p-35, INEXACT|UNDERFLOW)
+T(RN,        -0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,        -0x1.0000000003p-16400L,         0x1p-35, INEXACT|UNDERFLOW)
+T(RD,         0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,         0x1.0000000001p-16400L,        -0x1p-35, INEXACT|UNDERFLOW)
+T(RD,        -0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,      -0x1.000000000308p-16400L,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RU,         0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,       0x1.000000000108p-16400L,          0x1p+0, INEXACT|UNDERFLOW)
+T(RU,        -0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,        -0x1.0000000003p-16400L,         0x1p-35, INEXACT|UNDERFLOW)
+T(RZ,         0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,         0x1.0000000001p-16400L,        -0x1p-35, INEXACT|UNDERFLOW)
+T(RZ,        -0x1.0000000001p-16000L,           0x1.0000000001p-400L,                   -0x1p-16440L,        -0x1.0000000003p-16400L,         0x1p-35, INEXACT|UNDERFLOW)