math: add special case test vectors
[libc-test] / src / math / special / powf.h
diff --git a/src/math/special/powf.h b/src/math/special/powf.h
new file mode 100644 (file)
index 0000000..8c7d72d
--- /dev/null
@@ -0,0 +1,92 @@
+T(RN,          0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,        0x1.8p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x0p+0,         -0x1p-1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,         -0x1p+0,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,       -0x1.8p+1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
+T(RN,          0x0p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,         -0x0p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x0p+0,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,        0x1.8p+1,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x0p+0,         -0x1p-1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,         -0x1p+0,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,         -0x1p+1,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,       -0x1.8p+1,            -inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,         -0x1p+2,             inf,          0x0p+0, DIVBYZERO)
+T(RN,         -0x0p+0,            -inf,             inf,          0x0p+0, 0)
+T(RN,             nan,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             nan,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,         -0x0p+0,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,            -inf,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+0,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,         -0x1p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,       -0x1.8p+1,         -0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p+0,          0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,          0x1p+0,             nan,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,             inf,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,            -inf,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,        0x1.8p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,          0x1p-1,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,         -0x1p-1,          0x1p+0,          0x0p+0, 0)
+T(RN,          0x1p+0,       -0x1.8p+1,          0x1p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,          0x1p-1,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p-1,        0x1.8p+0,             nan,          0x0p+0, INVALID)
+T(RN,         -0x1p-1,          0x1p+1,          0x1p-2,          0x0p+0, 0)
+T(RN,         -0x1p-1,        0x1.8p+1,         -0x1p-3,          0x0p+0, 0)
+T(RN,         -0x1p-1,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,         -0x1p-1,            -inf,             inf,          0x0p+0, 0)
+T(RN,         -0x1p-1,             nan,             nan,          0x0p+0, 0)
+T(RN,          0x1p-1,             inf,          0x0p+0,          0x0p+0, 0)
+T(RN,          0x1p-1,            -inf,             inf,          0x0p+0, 0)
+T(RN,          0x1p-1,             nan,             nan,          0x0p+0, 0)
+T(RN,        0x1.8p+0,             inf,             inf,          0x0p+0, 0)
+T(RN,        0x1.8p+0,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,        0x1.8p+0,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             nan,             nan,          0x0p+0, 0)
+T(RN,             inf,             inf,             inf,          0x0p+0, 0)
+T(RN,             inf,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,        0x1.8p+1,             inf,          0x0p+0, 0)
+T(RN,             inf,          0x1p+1,             inf,          0x0p+0, 0)
+T(RN,             inf,          0x1p+0,             inf,          0x0p+0, 0)
+T(RN,             inf,          0x1p-1,             inf,          0x0p+0, 0)
+T(RN,             inf,         -0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+0,          0x0p+0,          0x0p+0, 0)
+T(RN,             inf,         -0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,             nan,             nan,          0x0p+0, 0)
+T(RN,            -inf,             inf,             inf,          0x0p+0, 0)
+T(RN,            -inf,            -inf,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,        0x1.8p+1,            -inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+1,             inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p+0,            -inf,          0x0p+0, 0)
+T(RN,            -inf,          0x1p-1,             inf,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p-1,          0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+0,         -0x0p+0,          0x0p+0, 0)
+T(RN,            -inf,         -0x1p+1,          0x0p+0,          0x0p+0, 0)
+T(RN,             nan,          0x1p+0,             nan,          0x0p+0, 0)
+T(RN,             nan,         -0x1p+0,             nan,          0x0p+0, 0)
+T(RN,         -0x1p+1,          0x1p+0,         -0x1p+1,          0x0p+0, 0)
+T(RN,         -0x1p+1,         -0x1p+0,         -0x1p-1,          0x0p+0, 0)