xref: /netbsd-src/tests/lib/lua/libm/h_lualibm.c (revision 902698381c132bb385bdce1eebce51a534f77203)
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