1ae082addSchristos #include <math.h>
2ae082addSchristos #include <stdio.h>
3ae082addSchristos
4ae082addSchristos #define TEST(M_) printf("%-24s%+2.13f\n", #M_, M_)
5ae082addSchristos #define TESTI(M_) printf("%-24s%d\n", #M_, M_)
6ae082addSchristos
7ae082addSchristos int
main(void)8ae082addSchristos main(void)
9ae082addSchristos {
10ae082addSchristos TEST(M_E);
11ae082addSchristos TEST(M_LOG2E);
12ae082addSchristos TEST(M_LOG10E);
13ae082addSchristos TEST(M_LN2);
14ae082addSchristos TEST(M_LN10);
15ae082addSchristos TEST(M_PI);
16ae082addSchristos TEST(M_PI_2);
17ae082addSchristos TEST(M_PI_4);
18ae082addSchristos TEST(M_1_PI);
19ae082addSchristos TEST(M_2_PI);
20ae082addSchristos TEST(M_2_SQRTPI);
21ae082addSchristos TEST(M_SQRT2);
22ae082addSchristos TEST(M_SQRT1_2);
23ae082addSchristos
24ae082addSchristos TEST(cos(M_PI_2));
25ae082addSchristos TEST(acos(cos(M_PI_2)));
26ae082addSchristos TEST(cosh(M_SQRT1_2));
27ae082addSchristos TEST(acosh(cosh(M_SQRT1_2)));
28ae082addSchristos TEST(sin(M_PI_2));
29ae082addSchristos TEST(asin(sin(M_PI_2)));
30ae082addSchristos TEST(sinh(M_PI_2));
31ae082addSchristos TEST(asinh(sinh(M_PI_2)));
32ae082addSchristos TEST(tan(M_SQRT2));
33ae082addSchristos TEST(atan(tan(M_SQRT2)));
34ae082addSchristos TEST(tanh(M_SQRT2));
35ae082addSchristos TEST(atanh(tanh(M_SQRT2)));
36ae082addSchristos TEST(atan2(M_SQRT2, M_SQRT2));
37ae082addSchristos TEST(cbrt(8.0));
38ae082addSchristos TEST(ceil(M_PI));
39ae082addSchristos TEST(ceil(M_E));
40ae082addSchristos TEST(copysign(-2.0, 10.0));
41ae082addSchristos TEST(copysign(2.0, -10.0));
42ae082addSchristos TEST(erf(M_SQRT1_2));
43ae082addSchristos TEST(erfc(M_SQRT1_2));
44ae082addSchristos TEST(exp(M_PI_4));
45ae082addSchristos TEST(exp2(3.0));
46ae082addSchristos TEST(expm1(M_PI_4));
47ae082addSchristos TEST(fabs(-M_SQRT2));
48ae082addSchristos TEST(fabs(M_SQRT2));
49ae082addSchristos TEST(fdim(M_PI, M_PI_2));
50ae082addSchristos TEST(fdim(M_PI, -M_PI_2));
51ae082addSchristos TESTI(finite(1.0 / 0.0));
52ae082addSchristos TEST(floor(M_PI));
53ae082addSchristos TEST(floor(M_E));
54ae082addSchristos TEST(fma(M_PI, M_E, M_SQRT2));
55ae082addSchristos TEST(fmax(M_PI, M_E));
56ae082addSchristos TEST(fmin(M_PI, M_E));
57ae082addSchristos TEST(fmod(100.5, 10.0));
58ae082addSchristos TEST(gamma(5.0));
59ae082addSchristos TEST(hypot(3.0, 4.0));
60ae082addSchristos printf("%-24s%d\n", "ilogb(10.0)", ilogb(10.0));
61ae082addSchristos TESTI(isinf(1.0 / 0.0));
62ae082addSchristos TESTI(isnan(log(-1.0)));
63ae082addSchristos TEST(j0(M_PI));
64ae082addSchristos TEST(j1(M_PI));
65ae082addSchristos TEST(jn(3, M_PI));
66ae082addSchristos TEST(lgamma(M_PI));
67ae082addSchristos TEST(log(M_E));
68ae082addSchristos TEST(log10(100.0));
69ae082addSchristos TEST(log1p(M_PI));
70ae082addSchristos TEST(nan(""));
71*90269838Schristos #ifdef notyet
72*90269838Schristos // XXX: vax
73ae082addSchristos TEST(nextafter(1.0e-14, 1.0));
74*90269838Schristos #endif
75ae082addSchristos TEST(pow(M_SQRT2, 2.0));
76ae082addSchristos TEST(remainder(M_PI, M_E));
77ae082addSchristos TEST(rint(M_PI));
78ae082addSchristos TEST(rint(M_E));
79ae082addSchristos printf("%-24s%+2.13f\n", "scalbn(1.0, 2)", scalbn(1.0, 2));
80ae082addSchristos TEST(sin(M_PI_4));
81ae082addSchristos TEST(sinh(M_PI_4));
82ae082addSchristos TEST(sqrt(9.0));
83ae082addSchristos TEST(tan(M_PI_4));
84ae082addSchristos TEST(tanh(M_PI_4));
85ae082addSchristos TEST(trunc(M_PI));
86ae082addSchristos TEST(trunc(M_E));
87ae082addSchristos TEST(y0(M_PI));
88ae082addSchristos TEST(y1(M_PI));
89ae082addSchristos TEST(yn(3, M_PI));
90ae082addSchristos
91ae082addSchristos return 0;
92ae082addSchristos }
93