math: add special case test vectors
[libc-test] / src / math / special / fmaf.h
diff --git a/src/math/special/fmaf.h b/src/math/special/fmaf.h
new file mode 100644 (file)
index 0000000..af5ac49
--- /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)