math: add special case test vectors
[libc-test] / src / math / special / fma.h
diff --git a/src/math/special/fma.h b/src/math/special/fma.h
new file mode 100644 (file)
index 0000000..ffa9721
--- /dev/null
@@ -0,0 +1,37 @@
+T(RN,                  0x0p+0,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                 -0x0p+0,                 -0x0p+0,          0x0p+0, 0)
+T(RN,                 -0x0p+0,                  0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                 -0x0p+0,                  0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                 -0x0p+0,                  0x0p+0,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     nan,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, 0)
+T(RN,                  0x0p+0,                  0x0p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                     inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                     inf,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x0p+0,                  0x0p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x0p+0,                    -inf,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                    -inf,                  0x0p+0,                  0x0p+0,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                     inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                     inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                  0x1p+0,                    -inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                    -inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                     inf,                     inf,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                     inf,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                 -0x1p+0,                    -inf,                    -inf,                     nan,          0x0p+0, INVALID)
+T(RN,                 -0x1p+0,                    -inf,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                     inf,                     inf,          0x0p+0, 0)
+T(RN,                  0x1p+0,                  0x1p+0,                    -inf,                    -inf,          0x0p+0, 0)
+T(RN,                     inf,                    -inf,                  0x1p+0,                    -inf,          0x0p+0, 0)
+T(RN,                    -inf,                    -inf,                  0x1p+0,                     inf,          0x0p+0, 0)
+T(RN,                     inf,                     inf,                     nan,                     nan,          0x0p+0, 0)
+T(RN,                     inf,                     nan,                     inf,                     nan,          0x0p+0, 0)
+T(RN,                     nan,                     inf,                     inf,                     nan,          0x0p+0, 0)
+// TODO: invalid is optional
+T(RN,                     inf,                  0x0p+0,                     nan,                     nan,          0x0p+0, INVALID)
+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)