summaryrefslogtreecommitdiff
path: root/tests/lib/lua/libm/h_lualibm.c
blob: 6dca7fd7dd8a1f7242ba7abbbe1b2c1259bfbda6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <math.h>
#include <stdio.h>

#define TEST(M_) printf("%-24s%+2.13f\n", #M_, M_)
#define TESTI(M_) printf("%-24s%d\n", #M_, M_)

int
main(void)
{
	TEST(M_E);
	TEST(M_LOG2E);
	TEST(M_LOG10E);
	TEST(M_LN2);
	TEST(M_LN10);
	TEST(M_PI);
	TEST(M_PI_2);
	TEST(M_PI_4);
	TEST(M_1_PI);
	TEST(M_2_PI);
	TEST(M_2_SQRTPI);
	TEST(M_SQRT2);
	TEST(M_SQRT1_2);

	TEST(cos(M_PI_2));
	TEST(acos(cos(M_PI_2)));
	TEST(cosh(M_SQRT1_2));
	TEST(acosh(cosh(M_SQRT1_2)));
	TEST(sin(M_PI_2));
	TEST(asin(sin(M_PI_2)));
	TEST(sinh(M_PI_2));
	TEST(asinh(sinh(M_PI_2)));
	TEST(tan(M_SQRT2));
	TEST(atan(tan(M_SQRT2)));
	TEST(tanh(M_SQRT2));
	TEST(atanh(tanh(M_SQRT2)));
	TEST(atan2(M_SQRT2, M_SQRT2));
	TEST(cbrt(8.0));
	TEST(ceil(M_PI));
	TEST(ceil(M_E));
	TEST(copysign(-2.0, 10.0));
	TEST(copysign(2.0, -10.0));
	TEST(erf(M_SQRT1_2));
	TEST(erfc(M_SQRT1_2));
	TEST(exp(M_PI_4));
	TEST(exp2(3.0));
	TEST(expm1(M_PI_4));
	TEST(fabs(-M_SQRT2));
	TEST(fabs(M_SQRT2));
	TEST(fdim(M_PI, M_PI_2));
	TEST(fdim(M_PI, -M_PI_2));
	TESTI(finite(1.0 / 0.0));
	TEST(floor(M_PI));
	TEST(floor(M_E));
	TEST(fma(M_PI, M_E, M_SQRT2));
	TEST(fmax(M_PI, M_E));
	TEST(fmin(M_PI, M_E));
	TEST(fmod(100.5, 10.0));
	TEST(gamma(5.0));
	TEST(hypot(3.0, 4.0));
	printf("%-24s%d\n", "ilogb(10.0)", ilogb(10.0));
	TESTI(isinf(1.0 / 0.0));
	TESTI(isnan(log(-1.0)));
	TEST(j0(M_PI));
	TEST(j1(M_PI));
	TEST(jn(3, M_PI));
	TEST(lgamma(M_PI));
	TEST(log(M_E));
	TEST(log10(100.0));
	TEST(log1p(M_PI));
	TEST(nan(""));
#ifdef notyet
	// XXX: vax
	TEST(nextafter(1.0e-14, 1.0));
#endif
	TEST(pow(M_SQRT2, 2.0));
	TEST(remainder(M_PI, M_E));
	TEST(rint(M_PI));
	TEST(rint(M_E));
	printf("%-24s%+2.13f\n", "scalbn(1.0, 2)", scalbn(1.0, 2));
	TEST(sin(M_PI_4));
	TEST(sinh(M_PI_4));
	TEST(sqrt(9.0));
	TEST(tan(M_PI_4));
	TEST(tanh(M_PI_4));
	TEST(trunc(M_PI));
	TEST(trunc(M_E));
	TEST(y0(M_PI));
	TEST(y1(M_PI));
	TEST(yn(3, M_PI));

	return 0;
}