math += nextafter bench and test
[libc-test] / src / math / modf.c
index 43b8657..77c044c 100644 (file)
@@ -56,7 +56,7 @@ static struct {
        NAN, NAN, NAN,
 };
 
-#define eq(a, b) (isnan(a) && isnan(b) || ((a) == (b) && signbit(a) == signbit(b)))
+#define eq(a, b) ((isnan(a) && isnan(b)) || ((a) == (b) && signbit(a) == signbit(b)))
 
 void test_modf()
 {
@@ -88,3 +88,64 @@ void test_modfl()
                        error("modfl(%La) want %La %La got %La %La\n", tl[i].x, tl[i].yf, tl[i].yi, yf, yi);
        }
 }
+
+void bench_modf_small(int N)
+{
+       int i;
+       double yi;
+       volatile double yf;
+
+       for (i = 0; i < N; i++)
+               yf = modf(1234.5678, &yi);
+}
+
+void bench_modf_negint(int N)
+{
+       int i;
+       double yi;
+       volatile double yf;
+
+       for (i = 0; i < N; i++)
+               yf = modf(-1234.0, &yi);
+}
+
+void bench_modf_large(int N)
+{
+       int i;
+       double yi;
+       volatile double yf;
+
+       for (i = 0; i < N; i++)
+               yf = modf(1.2345678e300, &yi);
+}
+
+
+void bench_modff_small(int N)
+{
+       int i;
+       float yi;
+       volatile float yf;
+
+       for (i = 0; i < N; i++)
+               yf = modff(1234.5678, &yi);
+}
+
+void bench_modff_negint(int N)
+{
+       int i;
+       float yi;
+       volatile float yf;
+
+       for (i = 0; i < N; i++)
+               yf = modff(-1234.0, &yi);
+}
+
+void bench_modff_large(int N)
+{
+       int i;
+       float yi;
+       volatile float yf;
+
+       for (i = 0; i < N; i++)
+               yf = modff(1.2345678e100, &yi);
+}