api: add float limits locale math
[libc-test] / src / api / math.c
1 #include <math.h>
2 #define T(t) (t*)0;
3 #define C(n) switch(n){case n:;}
4 #define I(n) {int i = n;}
5 #define D(n) {double d = n;}
6 static void f()
7 {
8 T(float_t)
9 T(double_t)
10 I(fpclassify(.0))
11 I(isfinite(.0))
12 I(isgreater(.0,.0))
13 I(isgreaterequal(.0,.0))
14 I(isinf(.0))
15 I(isless(.0,.0))
16 I(islessequal(.0,.0))
17 I(islessgreater(.0,.0))
18 I(isnan(.0))
19 I(isnormal(.0))
20 I(isunordered(.0,.0))
21 I(signbit(.0))
22 #ifdef _XOPEN_SOURCE
23 I(signgam)
24 D(M_E)
25 D(M_LOG2E)
26 D(M_LOG10E)
27 D(M_LN2)
28 D(M_LN10)
29 D(M_PI)
30 D(M_PI_2)
31 D(M_PI_4)
32 D(M_1_PI)
33 D(M_2_PI)
34 D(M_2_SQRTPI)
35 D(M_SQRT2)
36 D(M_SQRT1_2)
37 D(MAXFLOAT)
38 #endif
39 D(HUGE_VAL)
40 D(HUGE_VALF)
41 D(HUGE_VALL)
42 D(INFINITY)
43 D(NAN)
44 C(FP_INFINITE)
45 C(FP_NAN)
46 C(FP_NORMAL)
47 C(FP_SUBNORMAL)
48 C(FP_ZERO)
49 C(FP_ILOGB0)
50 C(FP_ILOGBNAN)
51 C(MATH_ERRNO)
52 C(MATH_ERREXCEPT)
53 C(math_errhandling)
54 double(*p_acos)(double) = acos;
55 float(*p_acosf)(float) = acosf;
56 double(*p_acosh)(double) = acosh;
57 float(*p_acoshf)(float) = acoshf;
58 long double(*p_acoshl)(long double) = acoshl;
59 long double(*p_acosl)(long double) = acosl;
60 double(*p_asin)(double) = asin;
61 float(*p_asinf)(float) = asinf;
62 double(*p_asinh)(double) = asinh;
63 float(*p_asinhf)(float) = asinhf;
64 long double(*p_asinhl)(long double) = asinhl;
65 long double(*p_asinl)(long double) = asinl;
66 double(*p_atan)(double) = atan;
67 double(*p_atan2)(double,double) = atan2;
68 float(*p_atan2f)(float,float) = atan2f;
69 long double(*p_atan2l)(long double,long double) = atan2l;
70 float(*p_atanf)(float) = atanf;
71 double(*p_atanh)(double) = atanh;
72 float(*p_atanhf)(float) = atanhf;
73 long double(*p_atanhl)(long double) = atanhl;
74 long double(*p_atanl)(long double) = atanl;
75 double(*p_cbrt)(double) = cbrt;
76 float(*p_cbrtf)(float) = cbrtf;
77 long double(*p_cbrtl)(long double) = cbrtl;
78 double(*p_ceil)(double) = ceil;
79 float(*p_ceilf)(float) = ceilf;
80 long double(*p_ceill)(long double) = ceill;
81 double(*p_copysign)(double,double) = copysign;
82 float(*p_copysignf)(float,float) = copysignf;
83 long double(*p_copysignl)(long double,long double) = copysignl;
84 double(*p_cos)(double) = cos;
85 float(*p_cosf)(float) = cosf;
86 double(*p_cosh)(double) = cosh;
87 float(*p_coshf)(float) = coshf;
88 long double(*p_coshl)(long double) = coshl;
89 long double(*p_cosl)(long double) = cosl;
90 double(*p_erf)(double) = erf;
91 double(*p_erfc)(double) = erfc;
92 float(*p_erfcf)(float) = erfcf;
93 long double(*p_erfcl)(long double) = erfcl;
94 float(*p_erff)(float) = erff;
95 long double(*p_erfl)(long double) = erfl;
96 double(*p_exp)(double) = exp;
97 double(*p_exp2)(double) = exp2;
98 float(*p_exp2f)(float) = exp2f;
99 long double(*p_exp2l)(long double) = exp2l;
100 float(*p_expf)(float) = expf;
101 long double(*p_expl)(long double) = expl;
102 double(*p_expm1)(double) = expm1;
103 float(*p_expm1f)(float) = expm1f;
104 long double(*p_expm1l)(long double) = expm1l;
105 double(*p_fabs)(double) = fabs;
106 float(*p_fabsf)(float) = fabsf;
107 long double(*p_fabsl)(long double) = fabsl;
108 double(*p_fdim)(double,double) = fdim;
109 float(*p_fdimf)(float,float) = fdimf;
110 long double(*p_fdiml)(long double,long double) = fdiml;
111 double(*p_floor)(double) = floor;
112 float(*p_floorf)(float) = floorf;
113 long double(*p_floorl)(long double) = floorl;
114 double(*p_fma)(double,double,double) = fma;
115 float(*p_fmaf)(float,float,float) = fmaf;
116 long double(*p_fmal)(long double,long double,long double) = fmal;
117 double(*p_fmax)(double,double) = fmax;
118 float(*p_fmaxf)(float,float) = fmaxf;
119 long double(*p_fmaxl)(long double,long double) = fmaxl;
120 double(*p_fmin)(double,double) = fmin;
121 float(*p_fminf)(float,float) = fminf;
122 long double(*p_fminl)(long double,long double) = fminl;
123 double(*p_fmod)(double,double) = fmod;
124 float(*p_fmodf)(float,float) = fmodf;
125 long double(*p_fmodl)(long double,long double) = fmodl;
126 double(*p_frexp)(double,int*) = frexp;
127 float(*p_frexpf)(float,int*) = frexpf;
128 long double(*p_frexpl)(long double,int*) = frexpl;
129 double(*p_hypot)(double,double) = hypot;
130 float(*p_hypotf)(float,float) = hypotf;
131 long double(*p_hypotl)(long double,long double) = hypotl;
132 int(*p_ilogb)(double) = ilogb;
133 int(*p_ilogbf)(float) = ilogbf;
134 int(*p_ilogbl)(long double) = ilogbl;
135 #ifdef _XOPEN_SOURCE
136 double(*p_j0)(double) = j0;
137 double(*p_j1)(double) = j1;
138 double(*p_jn)(int,double) = jn;
139 #endif
140 double(*p_ldexp)(double,int) = ldexp;
141 float(*p_ldexpf)(float,int) = ldexpf;
142 long double(*p_ldexpl)(long double,int) = ldexpl;
143 double(*p_lgamma)(double) = lgamma;
144 float(*p_lgammaf)(float) = lgammaf;
145 long double(*p_lgammal)(long double) = lgammal;
146 long long(*p_llrint)(double) = llrint;
147 long long(*p_llrintf)(float) = llrintf;
148 long long(*p_llrintl)(long double) = llrintl;
149 long long(*p_llround)(double) = llround;
150 long long(*p_llroundf)(float) = llroundf;
151 long long(*p_llroundl)(long double) = llroundl;
152 double(*p_log)(double) = log;
153 double(*p_log10)(double) = log10;
154 float(*p_log10f)(float) = log10f;
155 long double(*p_log10l)(long double) = log10l;
156 double(*p_log1p)(double) = log1p;
157 float(*p_log1pf)(float) = log1pf;
158 long double(*p_log1pl)(long double) = log1pl;
159 double(*p_log2)(double) = log2;
160 float(*p_log2f)(float) = log2f;
161 long double(*p_log2l)(long double) = log2l;
162 double(*p_logb)(double) = logb;
163 float(*p_logbf)(float) = logbf;
164 long double(*p_logbl)(long double) = logbl;
165 float(*p_logf)(float) = logf;
166 long double(*p_logl)(long double) = logl;
167 long(*p_lrint)(double) = lrint;
168 long(*p_lrintf)(float) = lrintf;
169 long(*p_lrintl)(long double) = lrintl;
170 long(*p_lround)(double) = lround;
171 long(*p_lroundf)(float) = lroundf;
172 long(*p_lroundl)(long double) = lroundl;
173 double(*p_modf)(double,double*) = modf;
174 float(*p_modff)(float,float*) = modff;
175 long double(*p_modfl)(long double,long double*) = modfl;
176 double(*p_nan)(const char*) = nan;
177 float(*p_nanf)(const char*) = nanf;
178 long double(*p_nanl)(const char*) = nanl;
179 double(*p_nearbyint)(double) = nearbyint;
180 float(*p_nearbyintf)(float) = nearbyintf;
181 long double(*p_nearbyintl)(long double) = nearbyintl;
182 double(*p_nextafter)(double,double) = nextafter;
183 float(*p_nextafterf)(float,float) = nextafterf;
184 long double(*p_nextafterl)(long double,long double) = nextafterl;
185 double(*p_nexttoward)(double,long double) = nexttoward;
186 float(*p_nexttowardf)(float,long double) = nexttowardf;
187 long double(*p_nexttowardl)(long double,long double) = nexttowardl;
188 double(*p_pow)(double,double) = pow;
189 float(*p_powf)(float,float) = powf;
190 long double(*p_powl)(long double,long double) = powl;
191 double(*p_remainder)(double,double) = remainder;
192 float(*p_remainderf)(float,float) = remainderf;
193 long double(*p_remainderl)(long double,long double) = remainderl;
194 double(*p_remquo)(double,double,int*) = remquo;
195 float(*p_remquof)(float,float,int*) = remquof;
196 long double(*p_remquol)(long double,long double,int*) = remquol;
197 double(*p_rint)(double) = rint;
198 float(*p_rintf)(float) = rintf;
199 long double(*p_rintl)(long double) = rintl;
200 double(*p_round)(double) = round;
201 float(*p_roundf)(float) = roundf;
202 long double(*p_roundl)(long double) = roundl;
203 double(*p_scalbln)(double,long) = scalbln;
204 float(*p_scalblnf)(float,long) = scalblnf;
205 long double(*p_scalblnl)(long double,long) = scalblnl;
206 double(*p_scalbn)(double,int) = scalbn;
207 float(*p_scalbnf)(float,int) = scalbnf;
208 long double(*p_scalbnl)(long double,int) = scalbnl;
209 double(*p_sin)(double) = sin;
210 float(*p_sinf)(float) = sinf;
211 double(*p_sinh)(double) = sinh;
212 float(*p_sinhf)(float) = sinhf;
213 long double(*p_sinhl)(long double) = sinhl;
214 long double(*p_sinl)(long double) = sinl;
215 double(*p_sqrt)(double) = sqrt;
216 float(*p_sqrtf)(float) = sqrtf;
217 long double(*p_sqrtl)(long double) = sqrtl;
218 double(*p_tan)(double) = tan;
219 float(*p_tanf)(float) = tanf;
220 double(*p_tanh)(double) = tanh;
221 float(*p_tanhf)(float) = tanhf;
222 long double(*p_tanhl)(long double) = tanhl;
223 long double(*p_tanl)(long double) = tanl;
224 double(*p_tgamma)(double) = tgamma;
225 float(*p_tgammaf)(float) = tgammaf;
226 long double(*p_tgammal)(long double) = tgammal;
227 double(*p_trunc)(double) = trunc;
228 float(*p_truncf)(float) = truncf;
229 long double(*p_truncl)(long double) = truncl;
230 #ifdef _XOPEN_SOURCE
231 double(*p_y0)(double) = y0;
232 double(*p_y1)(double) = y1;
233 double(*p_yn)(int,double) = yn;
234 #endif
235 }