OSDN Git Service

361556a81445818b70e9c1b61ee7ad47fc76af29
[uclinux-h8/uClibc.git] / test / math / compile_test.c
1 #include <math.h>
2
3 static int testf(float float_x, long double long_double_x, /*float complex float_complex_x,*/ int int_x, long long_x)
4 {
5 int r = 0;
6 r += acosf(float_x);
7 r += acoshf(float_x);
8 r += asinf(float_x);
9 r += asinhf(float_x);
10 r += atan2f(float_x, float_x);
11 r += atanf(float_x);
12 r += atanhf(float_x);
13 /*r += cargf(float_complex_x); - will fight with complex numbers later */
14 r += cbrtf(float_x);
15 r += ceilf(float_x);
16 r += copysignf(float_x, float_x);
17 r += cosf(float_x);
18 r += coshf(float_x);
19 r += erfcf(float_x);
20 r += erff(float_x);
21 /*r += exp2f(float_x); - uclibc does not have it (yet?) */
22 r += expf(float_x);
23 r += expm1f(float_x);
24 r += fabsf(float_x);
25 /*r += fdimf(float_x, float_x); - uclibc does not have it (yet?) */
26 r += floorf(float_x);
27 /*r += fmaf(float_x, float_x, float_x); - uclibc does not have it (yet?) */
28 /*r += fmaxf(float_x, float_x); - uclibc does not have it (yet?) */
29 /*r += fminf(float_x, float_x); - uclibc does not have it (yet?) */
30 r += fmodf(float_x, float_x);
31 r += frexpf(float_x, &int_x);
32 r += gammaf(float_x);
33 r += hypotf(float_x, float_x);
34 r += ilogbf(float_x);
35 r += ldexpf(float_x, int_x);
36 r += lgammaf(float_x);
37 r += llrintf(float_x);
38 r += llroundf(float_x);
39 r += log10f(float_x);
40 r += log1pf(float_x);
41 /*r += log2f(float_x); - uclibc does not have it (yet?) */
42 r += logbf(float_x);
43 r += logf(float_x);
44 r += lrintf(float_x);
45 r += lroundf(float_x);
46 r += modff(float_x, &float_x);
47 /*r += nearbyintf(float_x); - uclibc does not have it (yet?) */
48 /*r += nexttowardf(float_x, long_double_x); - uclibc does not have it (yet?) */
49 r += powf(float_x, float_x);
50 r += remainderf(float_x, float_x);
51 /*r += remquof(float_x, float_x, &int_x); - uclibc does not have it (yet?) */
52 r += rintf(float_x);
53 r += roundf(float_x);
54 r += scalbf(float_x, float_x);
55 /*r += scalblnf(float_x, long_x); - uclibc does not have it (yet?) */
56 r += scalbnf(float_x, int_x);
57 r += significandf(float_x);
58 r += sinf(float_x);
59 r += sinhf(float_x);
60 r += sqrtf(float_x);
61 r += tanf(float_x);
62 r += tanhf(float_x);
63 /*r += tgammaf(float_x); - uclibc does not have it (yet?) */
64 r += truncf(float_x);
65 return r;
66 }
67
68 static int testl(long double long_double_x, int int_x, long long_x)
69 {
70 int r = 0;
71 r += __finitel(long_double_x);
72 r += __fpclassifyl(long_double_x);
73 r += __isinfl(long_double_x);
74 r += __isnanl(long_double_x);
75 r += __signbitl(long_double_x);
76 r += acoshl(long_double_x);
77 r += acosl(long_double_x);
78 r += asinhl(long_double_x);
79 r += asinl(long_double_x);
80 r += atan2l(long_double_x, long_double_x);
81 r += atanhl(long_double_x);
82 r += atanl(long_double_x);
83 r += cbrtl(long_double_x);
84 r += ceill(long_double_x);
85 r += copysignl(long_double_x, long_double_x);
86 r += coshl(long_double_x);
87 r += cosl(long_double_x);
88 r += erfcl(long_double_x);
89 r += erfl(long_double_x);
90 r += exp2l(long_double_x);
91 r += expl(long_double_x);
92 r += expm1l(long_double_x);
93 r += fabsl(long_double_x);
94 r += fdiml(long_double_x, long_double_x);
95 r += floorl(long_double_x);
96 r += fmal(long_double_x, long_double_x, long_double_x);
97 r += fmaxl(long_double_x, long_double_x);
98 r += fminl(long_double_x, long_double_x);
99 r += fmodl(long_double_x, long_double_x);
100 r += frexpl(long_double_x, &int_x);
101 r += hypotl(long_double_x, long_double_x);
102 r += ilogbl(long_double_x);
103 r += ldexpl(long_double_x, int_x);
104 r += lgammal(long_double_x);
105 r += llrintl(long_double_x);
106 r += llroundl(long_double_x);
107 r += log10l(long_double_x);
108 r += log1pl(long_double_x);
109 r += log2l(long_double_x);
110 r += logbl(long_double_x);
111 r += logl(long_double_x);
112 r += lrintl(long_double_x);
113 r += lroundl(long_double_x);
114 r += modfl(long_double_x, &long_double_x);
115 r += nearbyintl(long_double_x);
116 r += nextafterl(long_double_x, long_double_x);
117 /* r += nexttowardl(long_double_x, long_double_x); - uclibc doesn't provide this [yet?] */
118 r += powl(long_double_x, long_double_x);
119 r += remainderl(long_double_x, long_double_x);
120 r += remquol(long_double_x, long_double_x, &int_x);
121 r += rintl(long_double_x);
122 r += roundl(long_double_x);
123 r += scalblnl(long_double_x, long_x);
124 r += scalbnl(long_double_x, int_x);
125 r += sinhl(long_double_x);
126 r += sinl(long_double_x);
127 r += sqrtl(long_double_x);
128 r += tanhl(long_double_x);
129 r += tanl(long_double_x);
130 r += tgammal(long_double_x);
131 r += truncl(long_double_x);
132 return r;
133 }
134
135 int main(int argc, char **argv)
136 {
137         /* Always 0 but gcc hopefully won't be able to notice */
138         return 5 & ((long)&testf) & ((long)&testl) & 2;
139 }