diff --git a/src/math/special/fma.h b/src/math/special/fma.h index 2efa8e1..b7b2371 100644 --- a/src/math/special/fma.h +++ b/src/math/special/fma.h @@ -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) diff --git a/src/math/special/fmaf.h b/src/math/special/fmaf.h index af5ac49..c6bc645 100644 --- a/src/math/special/fmaf.h +++ b/src/math/special/fmaf.h @@ -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) diff --git a/src/math/special/fmal.h b/src/math/special/fmal.h index e05ec5c..5a453b9 100644 --- a/src/math/special/fmal.h +++ b/src/math/special/fmal.h @@ -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)