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