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