annotate clang/lib/Headers/tgmath.h @ 176:de4ac79aef9d

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 17:13:11 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 /*===---- tgmath.h - Standard header for type generic math ----------------===*\
anatofuz
parents:
diff changeset
2 *
anatofuz
parents:
diff changeset
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
anatofuz
parents:
diff changeset
4 * See https://llvm.org/LICENSE.txt for license information.
anatofuz
parents:
diff changeset
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
anatofuz
parents:
diff changeset
6 *
anatofuz
parents:
diff changeset
7 \*===----------------------------------------------------------------------===*/
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 #ifndef __CLANG_TGMATH_H
anatofuz
parents:
diff changeset
10 #define __CLANG_TGMATH_H
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 /* C99 7.22 Type-generic math <tgmath.h>. */
anatofuz
parents:
diff changeset
13 #include <math.h>
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 /*
anatofuz
parents:
diff changeset
16 * Allow additional definitions and implementation-defined values on Apple
anatofuz
parents:
diff changeset
17 * platforms. This is done after #include <math.h> to avoid depcycle conflicts
anatofuz
parents:
diff changeset
18 * between libcxx and darwin in C++ modules builds.
anatofuz
parents:
diff changeset
19 */
anatofuz
parents:
diff changeset
20 #if defined(__APPLE__) && __STDC_HOSTED__ && __has_include_next(<tgmath.h>)
anatofuz
parents:
diff changeset
21 # include_next <tgmath.h>
anatofuz
parents:
diff changeset
22 #else
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 /* C++ handles type genericity with overloading in math.h. */
anatofuz
parents:
diff changeset
25 #ifndef __cplusplus
anatofuz
parents:
diff changeset
26 #include <complex.h>
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 #define _TG_ATTRSp __attribute__((__overloadable__))
anatofuz
parents:
diff changeset
29 #define _TG_ATTRS __attribute__((__overloadable__, __always_inline__))
anatofuz
parents:
diff changeset
30
anatofuz
parents:
diff changeset
31 // promotion
anatofuz
parents:
diff changeset
32
anatofuz
parents:
diff changeset
33 typedef void _Argument_type_is_not_arithmetic;
anatofuz
parents:
diff changeset
34 static _Argument_type_is_not_arithmetic __tg_promote(...)
anatofuz
parents:
diff changeset
35 __attribute__((__unavailable__,__overloadable__));
anatofuz
parents:
diff changeset
36 static double _TG_ATTRSp __tg_promote(int);
anatofuz
parents:
diff changeset
37 static double _TG_ATTRSp __tg_promote(unsigned int);
anatofuz
parents:
diff changeset
38 static double _TG_ATTRSp __tg_promote(long);
anatofuz
parents:
diff changeset
39 static double _TG_ATTRSp __tg_promote(unsigned long);
anatofuz
parents:
diff changeset
40 static double _TG_ATTRSp __tg_promote(long long);
anatofuz
parents:
diff changeset
41 static double _TG_ATTRSp __tg_promote(unsigned long long);
anatofuz
parents:
diff changeset
42 static float _TG_ATTRSp __tg_promote(float);
anatofuz
parents:
diff changeset
43 static double _TG_ATTRSp __tg_promote(double);
anatofuz
parents:
diff changeset
44 static long double _TG_ATTRSp __tg_promote(long double);
anatofuz
parents:
diff changeset
45 static float _Complex _TG_ATTRSp __tg_promote(float _Complex);
anatofuz
parents:
diff changeset
46 static double _Complex _TG_ATTRSp __tg_promote(double _Complex);
anatofuz
parents:
diff changeset
47 static long double _Complex _TG_ATTRSp __tg_promote(long double _Complex);
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 #define __tg_promote1(__x) (__typeof__(__tg_promote(__x)))
anatofuz
parents:
diff changeset
50 #define __tg_promote2(__x, __y) (__typeof__(__tg_promote(__x) + \
anatofuz
parents:
diff changeset
51 __tg_promote(__y)))
anatofuz
parents:
diff changeset
52 #define __tg_promote3(__x, __y, __z) (__typeof__(__tg_promote(__x) + \
anatofuz
parents:
diff changeset
53 __tg_promote(__y) + \
anatofuz
parents:
diff changeset
54 __tg_promote(__z)))
anatofuz
parents:
diff changeset
55
anatofuz
parents:
diff changeset
56 // acos
anatofuz
parents:
diff changeset
57
anatofuz
parents:
diff changeset
58 static float
anatofuz
parents:
diff changeset
59 _TG_ATTRS
anatofuz
parents:
diff changeset
60 __tg_acos(float __x) {return acosf(__x);}
anatofuz
parents:
diff changeset
61
anatofuz
parents:
diff changeset
62 static double
anatofuz
parents:
diff changeset
63 _TG_ATTRS
anatofuz
parents:
diff changeset
64 __tg_acos(double __x) {return acos(__x);}
anatofuz
parents:
diff changeset
65
anatofuz
parents:
diff changeset
66 static long double
anatofuz
parents:
diff changeset
67 _TG_ATTRS
anatofuz
parents:
diff changeset
68 __tg_acos(long double __x) {return acosl(__x);}
anatofuz
parents:
diff changeset
69
anatofuz
parents:
diff changeset
70 static float _Complex
anatofuz
parents:
diff changeset
71 _TG_ATTRS
anatofuz
parents:
diff changeset
72 __tg_acos(float _Complex __x) {return cacosf(__x);}
anatofuz
parents:
diff changeset
73
anatofuz
parents:
diff changeset
74 static double _Complex
anatofuz
parents:
diff changeset
75 _TG_ATTRS
anatofuz
parents:
diff changeset
76 __tg_acos(double _Complex __x) {return cacos(__x);}
anatofuz
parents:
diff changeset
77
anatofuz
parents:
diff changeset
78 static long double _Complex
anatofuz
parents:
diff changeset
79 _TG_ATTRS
anatofuz
parents:
diff changeset
80 __tg_acos(long double _Complex __x) {return cacosl(__x);}
anatofuz
parents:
diff changeset
81
anatofuz
parents:
diff changeset
82 #undef acos
anatofuz
parents:
diff changeset
83 #define acos(__x) __tg_acos(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
84
anatofuz
parents:
diff changeset
85 // asin
anatofuz
parents:
diff changeset
86
anatofuz
parents:
diff changeset
87 static float
anatofuz
parents:
diff changeset
88 _TG_ATTRS
anatofuz
parents:
diff changeset
89 __tg_asin(float __x) {return asinf(__x);}
anatofuz
parents:
diff changeset
90
anatofuz
parents:
diff changeset
91 static double
anatofuz
parents:
diff changeset
92 _TG_ATTRS
anatofuz
parents:
diff changeset
93 __tg_asin(double __x) {return asin(__x);}
anatofuz
parents:
diff changeset
94
anatofuz
parents:
diff changeset
95 static long double
anatofuz
parents:
diff changeset
96 _TG_ATTRS
anatofuz
parents:
diff changeset
97 __tg_asin(long double __x) {return asinl(__x);}
anatofuz
parents:
diff changeset
98
anatofuz
parents:
diff changeset
99 static float _Complex
anatofuz
parents:
diff changeset
100 _TG_ATTRS
anatofuz
parents:
diff changeset
101 __tg_asin(float _Complex __x) {return casinf(__x);}
anatofuz
parents:
diff changeset
102
anatofuz
parents:
diff changeset
103 static double _Complex
anatofuz
parents:
diff changeset
104 _TG_ATTRS
anatofuz
parents:
diff changeset
105 __tg_asin(double _Complex __x) {return casin(__x);}
anatofuz
parents:
diff changeset
106
anatofuz
parents:
diff changeset
107 static long double _Complex
anatofuz
parents:
diff changeset
108 _TG_ATTRS
anatofuz
parents:
diff changeset
109 __tg_asin(long double _Complex __x) {return casinl(__x);}
anatofuz
parents:
diff changeset
110
anatofuz
parents:
diff changeset
111 #undef asin
anatofuz
parents:
diff changeset
112 #define asin(__x) __tg_asin(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
113
anatofuz
parents:
diff changeset
114 // atan
anatofuz
parents:
diff changeset
115
anatofuz
parents:
diff changeset
116 static float
anatofuz
parents:
diff changeset
117 _TG_ATTRS
anatofuz
parents:
diff changeset
118 __tg_atan(float __x) {return atanf(__x);}
anatofuz
parents:
diff changeset
119
anatofuz
parents:
diff changeset
120 static double
anatofuz
parents:
diff changeset
121 _TG_ATTRS
anatofuz
parents:
diff changeset
122 __tg_atan(double __x) {return atan(__x);}
anatofuz
parents:
diff changeset
123
anatofuz
parents:
diff changeset
124 static long double
anatofuz
parents:
diff changeset
125 _TG_ATTRS
anatofuz
parents:
diff changeset
126 __tg_atan(long double __x) {return atanl(__x);}
anatofuz
parents:
diff changeset
127
anatofuz
parents:
diff changeset
128 static float _Complex
anatofuz
parents:
diff changeset
129 _TG_ATTRS
anatofuz
parents:
diff changeset
130 __tg_atan(float _Complex __x) {return catanf(__x);}
anatofuz
parents:
diff changeset
131
anatofuz
parents:
diff changeset
132 static double _Complex
anatofuz
parents:
diff changeset
133 _TG_ATTRS
anatofuz
parents:
diff changeset
134 __tg_atan(double _Complex __x) {return catan(__x);}
anatofuz
parents:
diff changeset
135
anatofuz
parents:
diff changeset
136 static long double _Complex
anatofuz
parents:
diff changeset
137 _TG_ATTRS
anatofuz
parents:
diff changeset
138 __tg_atan(long double _Complex __x) {return catanl(__x);}
anatofuz
parents:
diff changeset
139
anatofuz
parents:
diff changeset
140 #undef atan
anatofuz
parents:
diff changeset
141 #define atan(__x) __tg_atan(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
142
anatofuz
parents:
diff changeset
143 // acosh
anatofuz
parents:
diff changeset
144
anatofuz
parents:
diff changeset
145 static float
anatofuz
parents:
diff changeset
146 _TG_ATTRS
anatofuz
parents:
diff changeset
147 __tg_acosh(float __x) {return acoshf(__x);}
anatofuz
parents:
diff changeset
148
anatofuz
parents:
diff changeset
149 static double
anatofuz
parents:
diff changeset
150 _TG_ATTRS
anatofuz
parents:
diff changeset
151 __tg_acosh(double __x) {return acosh(__x);}
anatofuz
parents:
diff changeset
152
anatofuz
parents:
diff changeset
153 static long double
anatofuz
parents:
diff changeset
154 _TG_ATTRS
anatofuz
parents:
diff changeset
155 __tg_acosh(long double __x) {return acoshl(__x);}
anatofuz
parents:
diff changeset
156
anatofuz
parents:
diff changeset
157 static float _Complex
anatofuz
parents:
diff changeset
158 _TG_ATTRS
anatofuz
parents:
diff changeset
159 __tg_acosh(float _Complex __x) {return cacoshf(__x);}
anatofuz
parents:
diff changeset
160
anatofuz
parents:
diff changeset
161 static double _Complex
anatofuz
parents:
diff changeset
162 _TG_ATTRS
anatofuz
parents:
diff changeset
163 __tg_acosh(double _Complex __x) {return cacosh(__x);}
anatofuz
parents:
diff changeset
164
anatofuz
parents:
diff changeset
165 static long double _Complex
anatofuz
parents:
diff changeset
166 _TG_ATTRS
anatofuz
parents:
diff changeset
167 __tg_acosh(long double _Complex __x) {return cacoshl(__x);}
anatofuz
parents:
diff changeset
168
anatofuz
parents:
diff changeset
169 #undef acosh
anatofuz
parents:
diff changeset
170 #define acosh(__x) __tg_acosh(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
171
anatofuz
parents:
diff changeset
172 // asinh
anatofuz
parents:
diff changeset
173
anatofuz
parents:
diff changeset
174 static float
anatofuz
parents:
diff changeset
175 _TG_ATTRS
anatofuz
parents:
diff changeset
176 __tg_asinh(float __x) {return asinhf(__x);}
anatofuz
parents:
diff changeset
177
anatofuz
parents:
diff changeset
178 static double
anatofuz
parents:
diff changeset
179 _TG_ATTRS
anatofuz
parents:
diff changeset
180 __tg_asinh(double __x) {return asinh(__x);}
anatofuz
parents:
diff changeset
181
anatofuz
parents:
diff changeset
182 static long double
anatofuz
parents:
diff changeset
183 _TG_ATTRS
anatofuz
parents:
diff changeset
184 __tg_asinh(long double __x) {return asinhl(__x);}
anatofuz
parents:
diff changeset
185
anatofuz
parents:
diff changeset
186 static float _Complex
anatofuz
parents:
diff changeset
187 _TG_ATTRS
anatofuz
parents:
diff changeset
188 __tg_asinh(float _Complex __x) {return casinhf(__x);}
anatofuz
parents:
diff changeset
189
anatofuz
parents:
diff changeset
190 static double _Complex
anatofuz
parents:
diff changeset
191 _TG_ATTRS
anatofuz
parents:
diff changeset
192 __tg_asinh(double _Complex __x) {return casinh(__x);}
anatofuz
parents:
diff changeset
193
anatofuz
parents:
diff changeset
194 static long double _Complex
anatofuz
parents:
diff changeset
195 _TG_ATTRS
anatofuz
parents:
diff changeset
196 __tg_asinh(long double _Complex __x) {return casinhl(__x);}
anatofuz
parents:
diff changeset
197
anatofuz
parents:
diff changeset
198 #undef asinh
anatofuz
parents:
diff changeset
199 #define asinh(__x) __tg_asinh(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
200
anatofuz
parents:
diff changeset
201 // atanh
anatofuz
parents:
diff changeset
202
anatofuz
parents:
diff changeset
203 static float
anatofuz
parents:
diff changeset
204 _TG_ATTRS
anatofuz
parents:
diff changeset
205 __tg_atanh(float __x) {return atanhf(__x);}
anatofuz
parents:
diff changeset
206
anatofuz
parents:
diff changeset
207 static double
anatofuz
parents:
diff changeset
208 _TG_ATTRS
anatofuz
parents:
diff changeset
209 __tg_atanh(double __x) {return atanh(__x);}
anatofuz
parents:
diff changeset
210
anatofuz
parents:
diff changeset
211 static long double
anatofuz
parents:
diff changeset
212 _TG_ATTRS
anatofuz
parents:
diff changeset
213 __tg_atanh(long double __x) {return atanhl(__x);}
anatofuz
parents:
diff changeset
214
anatofuz
parents:
diff changeset
215 static float _Complex
anatofuz
parents:
diff changeset
216 _TG_ATTRS
anatofuz
parents:
diff changeset
217 __tg_atanh(float _Complex __x) {return catanhf(__x);}
anatofuz
parents:
diff changeset
218
anatofuz
parents:
diff changeset
219 static double _Complex
anatofuz
parents:
diff changeset
220 _TG_ATTRS
anatofuz
parents:
diff changeset
221 __tg_atanh(double _Complex __x) {return catanh(__x);}
anatofuz
parents:
diff changeset
222
anatofuz
parents:
diff changeset
223 static long double _Complex
anatofuz
parents:
diff changeset
224 _TG_ATTRS
anatofuz
parents:
diff changeset
225 __tg_atanh(long double _Complex __x) {return catanhl(__x);}
anatofuz
parents:
diff changeset
226
anatofuz
parents:
diff changeset
227 #undef atanh
anatofuz
parents:
diff changeset
228 #define atanh(__x) __tg_atanh(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
229
anatofuz
parents:
diff changeset
230 // cos
anatofuz
parents:
diff changeset
231
anatofuz
parents:
diff changeset
232 static float
anatofuz
parents:
diff changeset
233 _TG_ATTRS
anatofuz
parents:
diff changeset
234 __tg_cos(float __x) {return cosf(__x);}
anatofuz
parents:
diff changeset
235
anatofuz
parents:
diff changeset
236 static double
anatofuz
parents:
diff changeset
237 _TG_ATTRS
anatofuz
parents:
diff changeset
238 __tg_cos(double __x) {return cos(__x);}
anatofuz
parents:
diff changeset
239
anatofuz
parents:
diff changeset
240 static long double
anatofuz
parents:
diff changeset
241 _TG_ATTRS
anatofuz
parents:
diff changeset
242 __tg_cos(long double __x) {return cosl(__x);}
anatofuz
parents:
diff changeset
243
anatofuz
parents:
diff changeset
244 static float _Complex
anatofuz
parents:
diff changeset
245 _TG_ATTRS
anatofuz
parents:
diff changeset
246 __tg_cos(float _Complex __x) {return ccosf(__x);}
anatofuz
parents:
diff changeset
247
anatofuz
parents:
diff changeset
248 static double _Complex
anatofuz
parents:
diff changeset
249 _TG_ATTRS
anatofuz
parents:
diff changeset
250 __tg_cos(double _Complex __x) {return ccos(__x);}
anatofuz
parents:
diff changeset
251
anatofuz
parents:
diff changeset
252 static long double _Complex
anatofuz
parents:
diff changeset
253 _TG_ATTRS
anatofuz
parents:
diff changeset
254 __tg_cos(long double _Complex __x) {return ccosl(__x);}
anatofuz
parents:
diff changeset
255
anatofuz
parents:
diff changeset
256 #undef cos
anatofuz
parents:
diff changeset
257 #define cos(__x) __tg_cos(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
258
anatofuz
parents:
diff changeset
259 // sin
anatofuz
parents:
diff changeset
260
anatofuz
parents:
diff changeset
261 static float
anatofuz
parents:
diff changeset
262 _TG_ATTRS
anatofuz
parents:
diff changeset
263 __tg_sin(float __x) {return sinf(__x);}
anatofuz
parents:
diff changeset
264
anatofuz
parents:
diff changeset
265 static double
anatofuz
parents:
diff changeset
266 _TG_ATTRS
anatofuz
parents:
diff changeset
267 __tg_sin(double __x) {return sin(__x);}
anatofuz
parents:
diff changeset
268
anatofuz
parents:
diff changeset
269 static long double
anatofuz
parents:
diff changeset
270 _TG_ATTRS
anatofuz
parents:
diff changeset
271 __tg_sin(long double __x) {return sinl(__x);}
anatofuz
parents:
diff changeset
272
anatofuz
parents:
diff changeset
273 static float _Complex
anatofuz
parents:
diff changeset
274 _TG_ATTRS
anatofuz
parents:
diff changeset
275 __tg_sin(float _Complex __x) {return csinf(__x);}
anatofuz
parents:
diff changeset
276
anatofuz
parents:
diff changeset
277 static double _Complex
anatofuz
parents:
diff changeset
278 _TG_ATTRS
anatofuz
parents:
diff changeset
279 __tg_sin(double _Complex __x) {return csin(__x);}
anatofuz
parents:
diff changeset
280
anatofuz
parents:
diff changeset
281 static long double _Complex
anatofuz
parents:
diff changeset
282 _TG_ATTRS
anatofuz
parents:
diff changeset
283 __tg_sin(long double _Complex __x) {return csinl(__x);}
anatofuz
parents:
diff changeset
284
anatofuz
parents:
diff changeset
285 #undef sin
anatofuz
parents:
diff changeset
286 #define sin(__x) __tg_sin(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
287
anatofuz
parents:
diff changeset
288 // tan
anatofuz
parents:
diff changeset
289
anatofuz
parents:
diff changeset
290 static float
anatofuz
parents:
diff changeset
291 _TG_ATTRS
anatofuz
parents:
diff changeset
292 __tg_tan(float __x) {return tanf(__x);}
anatofuz
parents:
diff changeset
293
anatofuz
parents:
diff changeset
294 static double
anatofuz
parents:
diff changeset
295 _TG_ATTRS
anatofuz
parents:
diff changeset
296 __tg_tan(double __x) {return tan(__x);}
anatofuz
parents:
diff changeset
297
anatofuz
parents:
diff changeset
298 static long double
anatofuz
parents:
diff changeset
299 _TG_ATTRS
anatofuz
parents:
diff changeset
300 __tg_tan(long double __x) {return tanl(__x);}
anatofuz
parents:
diff changeset
301
anatofuz
parents:
diff changeset
302 static float _Complex
anatofuz
parents:
diff changeset
303 _TG_ATTRS
anatofuz
parents:
diff changeset
304 __tg_tan(float _Complex __x) {return ctanf(__x);}
anatofuz
parents:
diff changeset
305
anatofuz
parents:
diff changeset
306 static double _Complex
anatofuz
parents:
diff changeset
307 _TG_ATTRS
anatofuz
parents:
diff changeset
308 __tg_tan(double _Complex __x) {return ctan(__x);}
anatofuz
parents:
diff changeset
309
anatofuz
parents:
diff changeset
310 static long double _Complex
anatofuz
parents:
diff changeset
311 _TG_ATTRS
anatofuz
parents:
diff changeset
312 __tg_tan(long double _Complex __x) {return ctanl(__x);}
anatofuz
parents:
diff changeset
313
anatofuz
parents:
diff changeset
314 #undef tan
anatofuz
parents:
diff changeset
315 #define tan(__x) __tg_tan(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
316
anatofuz
parents:
diff changeset
317 // cosh
anatofuz
parents:
diff changeset
318
anatofuz
parents:
diff changeset
319 static float
anatofuz
parents:
diff changeset
320 _TG_ATTRS
anatofuz
parents:
diff changeset
321 __tg_cosh(float __x) {return coshf(__x);}
anatofuz
parents:
diff changeset
322
anatofuz
parents:
diff changeset
323 static double
anatofuz
parents:
diff changeset
324 _TG_ATTRS
anatofuz
parents:
diff changeset
325 __tg_cosh(double __x) {return cosh(__x);}
anatofuz
parents:
diff changeset
326
anatofuz
parents:
diff changeset
327 static long double
anatofuz
parents:
diff changeset
328 _TG_ATTRS
anatofuz
parents:
diff changeset
329 __tg_cosh(long double __x) {return coshl(__x);}
anatofuz
parents:
diff changeset
330
anatofuz
parents:
diff changeset
331 static float _Complex
anatofuz
parents:
diff changeset
332 _TG_ATTRS
anatofuz
parents:
diff changeset
333 __tg_cosh(float _Complex __x) {return ccoshf(__x);}
anatofuz
parents:
diff changeset
334
anatofuz
parents:
diff changeset
335 static double _Complex
anatofuz
parents:
diff changeset
336 _TG_ATTRS
anatofuz
parents:
diff changeset
337 __tg_cosh(double _Complex __x) {return ccosh(__x);}
anatofuz
parents:
diff changeset
338
anatofuz
parents:
diff changeset
339 static long double _Complex
anatofuz
parents:
diff changeset
340 _TG_ATTRS
anatofuz
parents:
diff changeset
341 __tg_cosh(long double _Complex __x) {return ccoshl(__x);}
anatofuz
parents:
diff changeset
342
anatofuz
parents:
diff changeset
343 #undef cosh
anatofuz
parents:
diff changeset
344 #define cosh(__x) __tg_cosh(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
345
anatofuz
parents:
diff changeset
346 // sinh
anatofuz
parents:
diff changeset
347
anatofuz
parents:
diff changeset
348 static float
anatofuz
parents:
diff changeset
349 _TG_ATTRS
anatofuz
parents:
diff changeset
350 __tg_sinh(float __x) {return sinhf(__x);}
anatofuz
parents:
diff changeset
351
anatofuz
parents:
diff changeset
352 static double
anatofuz
parents:
diff changeset
353 _TG_ATTRS
anatofuz
parents:
diff changeset
354 __tg_sinh(double __x) {return sinh(__x);}
anatofuz
parents:
diff changeset
355
anatofuz
parents:
diff changeset
356 static long double
anatofuz
parents:
diff changeset
357 _TG_ATTRS
anatofuz
parents:
diff changeset
358 __tg_sinh(long double __x) {return sinhl(__x);}
anatofuz
parents:
diff changeset
359
anatofuz
parents:
diff changeset
360 static float _Complex
anatofuz
parents:
diff changeset
361 _TG_ATTRS
anatofuz
parents:
diff changeset
362 __tg_sinh(float _Complex __x) {return csinhf(__x);}
anatofuz
parents:
diff changeset
363
anatofuz
parents:
diff changeset
364 static double _Complex
anatofuz
parents:
diff changeset
365 _TG_ATTRS
anatofuz
parents:
diff changeset
366 __tg_sinh(double _Complex __x) {return csinh(__x);}
anatofuz
parents:
diff changeset
367
anatofuz
parents:
diff changeset
368 static long double _Complex
anatofuz
parents:
diff changeset
369 _TG_ATTRS
anatofuz
parents:
diff changeset
370 __tg_sinh(long double _Complex __x) {return csinhl(__x);}
anatofuz
parents:
diff changeset
371
anatofuz
parents:
diff changeset
372 #undef sinh
anatofuz
parents:
diff changeset
373 #define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
374
anatofuz
parents:
diff changeset
375 // tanh
anatofuz
parents:
diff changeset
376
anatofuz
parents:
diff changeset
377 static float
anatofuz
parents:
diff changeset
378 _TG_ATTRS
anatofuz
parents:
diff changeset
379 __tg_tanh(float __x) {return tanhf(__x);}
anatofuz
parents:
diff changeset
380
anatofuz
parents:
diff changeset
381 static double
anatofuz
parents:
diff changeset
382 _TG_ATTRS
anatofuz
parents:
diff changeset
383 __tg_tanh(double __x) {return tanh(__x);}
anatofuz
parents:
diff changeset
384
anatofuz
parents:
diff changeset
385 static long double
anatofuz
parents:
diff changeset
386 _TG_ATTRS
anatofuz
parents:
diff changeset
387 __tg_tanh(long double __x) {return tanhl(__x);}
anatofuz
parents:
diff changeset
388
anatofuz
parents:
diff changeset
389 static float _Complex
anatofuz
parents:
diff changeset
390 _TG_ATTRS
anatofuz
parents:
diff changeset
391 __tg_tanh(float _Complex __x) {return ctanhf(__x);}
anatofuz
parents:
diff changeset
392
anatofuz
parents:
diff changeset
393 static double _Complex
anatofuz
parents:
diff changeset
394 _TG_ATTRS
anatofuz
parents:
diff changeset
395 __tg_tanh(double _Complex __x) {return ctanh(__x);}
anatofuz
parents:
diff changeset
396
anatofuz
parents:
diff changeset
397 static long double _Complex
anatofuz
parents:
diff changeset
398 _TG_ATTRS
anatofuz
parents:
diff changeset
399 __tg_tanh(long double _Complex __x) {return ctanhl(__x);}
anatofuz
parents:
diff changeset
400
anatofuz
parents:
diff changeset
401 #undef tanh
anatofuz
parents:
diff changeset
402 #define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
403
anatofuz
parents:
diff changeset
404 // exp
anatofuz
parents:
diff changeset
405
anatofuz
parents:
diff changeset
406 static float
anatofuz
parents:
diff changeset
407 _TG_ATTRS
anatofuz
parents:
diff changeset
408 __tg_exp(float __x) {return expf(__x);}
anatofuz
parents:
diff changeset
409
anatofuz
parents:
diff changeset
410 static double
anatofuz
parents:
diff changeset
411 _TG_ATTRS
anatofuz
parents:
diff changeset
412 __tg_exp(double __x) {return exp(__x);}
anatofuz
parents:
diff changeset
413
anatofuz
parents:
diff changeset
414 static long double
anatofuz
parents:
diff changeset
415 _TG_ATTRS
anatofuz
parents:
diff changeset
416 __tg_exp(long double __x) {return expl(__x);}
anatofuz
parents:
diff changeset
417
anatofuz
parents:
diff changeset
418 static float _Complex
anatofuz
parents:
diff changeset
419 _TG_ATTRS
anatofuz
parents:
diff changeset
420 __tg_exp(float _Complex __x) {return cexpf(__x);}
anatofuz
parents:
diff changeset
421
anatofuz
parents:
diff changeset
422 static double _Complex
anatofuz
parents:
diff changeset
423 _TG_ATTRS
anatofuz
parents:
diff changeset
424 __tg_exp(double _Complex __x) {return cexp(__x);}
anatofuz
parents:
diff changeset
425
anatofuz
parents:
diff changeset
426 static long double _Complex
anatofuz
parents:
diff changeset
427 _TG_ATTRS
anatofuz
parents:
diff changeset
428 __tg_exp(long double _Complex __x) {return cexpl(__x);}
anatofuz
parents:
diff changeset
429
anatofuz
parents:
diff changeset
430 #undef exp
anatofuz
parents:
diff changeset
431 #define exp(__x) __tg_exp(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
432
anatofuz
parents:
diff changeset
433 // log
anatofuz
parents:
diff changeset
434
anatofuz
parents:
diff changeset
435 static float
anatofuz
parents:
diff changeset
436 _TG_ATTRS
anatofuz
parents:
diff changeset
437 __tg_log(float __x) {return logf(__x);}
anatofuz
parents:
diff changeset
438
anatofuz
parents:
diff changeset
439 static double
anatofuz
parents:
diff changeset
440 _TG_ATTRS
anatofuz
parents:
diff changeset
441 __tg_log(double __x) {return log(__x);}
anatofuz
parents:
diff changeset
442
anatofuz
parents:
diff changeset
443 static long double
anatofuz
parents:
diff changeset
444 _TG_ATTRS
anatofuz
parents:
diff changeset
445 __tg_log(long double __x) {return logl(__x);}
anatofuz
parents:
diff changeset
446
anatofuz
parents:
diff changeset
447 static float _Complex
anatofuz
parents:
diff changeset
448 _TG_ATTRS
anatofuz
parents:
diff changeset
449 __tg_log(float _Complex __x) {return clogf(__x);}
anatofuz
parents:
diff changeset
450
anatofuz
parents:
diff changeset
451 static double _Complex
anatofuz
parents:
diff changeset
452 _TG_ATTRS
anatofuz
parents:
diff changeset
453 __tg_log(double _Complex __x) {return clog(__x);}
anatofuz
parents:
diff changeset
454
anatofuz
parents:
diff changeset
455 static long double _Complex
anatofuz
parents:
diff changeset
456 _TG_ATTRS
anatofuz
parents:
diff changeset
457 __tg_log(long double _Complex __x) {return clogl(__x);}
anatofuz
parents:
diff changeset
458
anatofuz
parents:
diff changeset
459 #undef log
anatofuz
parents:
diff changeset
460 #define log(__x) __tg_log(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
461
anatofuz
parents:
diff changeset
462 // pow
anatofuz
parents:
diff changeset
463
anatofuz
parents:
diff changeset
464 static float
anatofuz
parents:
diff changeset
465 _TG_ATTRS
anatofuz
parents:
diff changeset
466 __tg_pow(float __x, float __y) {return powf(__x, __y);}
anatofuz
parents:
diff changeset
467
anatofuz
parents:
diff changeset
468 static double
anatofuz
parents:
diff changeset
469 _TG_ATTRS
anatofuz
parents:
diff changeset
470 __tg_pow(double __x, double __y) {return pow(__x, __y);}
anatofuz
parents:
diff changeset
471
anatofuz
parents:
diff changeset
472 static long double
anatofuz
parents:
diff changeset
473 _TG_ATTRS
anatofuz
parents:
diff changeset
474 __tg_pow(long double __x, long double __y) {return powl(__x, __y);}
anatofuz
parents:
diff changeset
475
anatofuz
parents:
diff changeset
476 static float _Complex
anatofuz
parents:
diff changeset
477 _TG_ATTRS
anatofuz
parents:
diff changeset
478 __tg_pow(float _Complex __x, float _Complex __y) {return cpowf(__x, __y);}
anatofuz
parents:
diff changeset
479
anatofuz
parents:
diff changeset
480 static double _Complex
anatofuz
parents:
diff changeset
481 _TG_ATTRS
anatofuz
parents:
diff changeset
482 __tg_pow(double _Complex __x, double _Complex __y) {return cpow(__x, __y);}
anatofuz
parents:
diff changeset
483
anatofuz
parents:
diff changeset
484 static long double _Complex
anatofuz
parents:
diff changeset
485 _TG_ATTRS
anatofuz
parents:
diff changeset
486 __tg_pow(long double _Complex __x, long double _Complex __y)
anatofuz
parents:
diff changeset
487 {return cpowl(__x, __y);}
anatofuz
parents:
diff changeset
488
anatofuz
parents:
diff changeset
489 #undef pow
anatofuz
parents:
diff changeset
490 #define pow(__x, __y) __tg_pow(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
491 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
492
anatofuz
parents:
diff changeset
493 // sqrt
anatofuz
parents:
diff changeset
494
anatofuz
parents:
diff changeset
495 static float
anatofuz
parents:
diff changeset
496 _TG_ATTRS
anatofuz
parents:
diff changeset
497 __tg_sqrt(float __x) {return sqrtf(__x);}
anatofuz
parents:
diff changeset
498
anatofuz
parents:
diff changeset
499 static double
anatofuz
parents:
diff changeset
500 _TG_ATTRS
anatofuz
parents:
diff changeset
501 __tg_sqrt(double __x) {return sqrt(__x);}
anatofuz
parents:
diff changeset
502
anatofuz
parents:
diff changeset
503 static long double
anatofuz
parents:
diff changeset
504 _TG_ATTRS
anatofuz
parents:
diff changeset
505 __tg_sqrt(long double __x) {return sqrtl(__x);}
anatofuz
parents:
diff changeset
506
anatofuz
parents:
diff changeset
507 static float _Complex
anatofuz
parents:
diff changeset
508 _TG_ATTRS
anatofuz
parents:
diff changeset
509 __tg_sqrt(float _Complex __x) {return csqrtf(__x);}
anatofuz
parents:
diff changeset
510
anatofuz
parents:
diff changeset
511 static double _Complex
anatofuz
parents:
diff changeset
512 _TG_ATTRS
anatofuz
parents:
diff changeset
513 __tg_sqrt(double _Complex __x) {return csqrt(__x);}
anatofuz
parents:
diff changeset
514
anatofuz
parents:
diff changeset
515 static long double _Complex
anatofuz
parents:
diff changeset
516 _TG_ATTRS
anatofuz
parents:
diff changeset
517 __tg_sqrt(long double _Complex __x) {return csqrtl(__x);}
anatofuz
parents:
diff changeset
518
anatofuz
parents:
diff changeset
519 #undef sqrt
anatofuz
parents:
diff changeset
520 #define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
521
anatofuz
parents:
diff changeset
522 // fabs
anatofuz
parents:
diff changeset
523
anatofuz
parents:
diff changeset
524 static float
anatofuz
parents:
diff changeset
525 _TG_ATTRS
anatofuz
parents:
diff changeset
526 __tg_fabs(float __x) {return fabsf(__x);}
anatofuz
parents:
diff changeset
527
anatofuz
parents:
diff changeset
528 static double
anatofuz
parents:
diff changeset
529 _TG_ATTRS
anatofuz
parents:
diff changeset
530 __tg_fabs(double __x) {return fabs(__x);}
anatofuz
parents:
diff changeset
531
anatofuz
parents:
diff changeset
532 static long double
anatofuz
parents:
diff changeset
533 _TG_ATTRS
anatofuz
parents:
diff changeset
534 __tg_fabs(long double __x) {return fabsl(__x);}
anatofuz
parents:
diff changeset
535
anatofuz
parents:
diff changeset
536 static float
anatofuz
parents:
diff changeset
537 _TG_ATTRS
anatofuz
parents:
diff changeset
538 __tg_fabs(float _Complex __x) {return cabsf(__x);}
anatofuz
parents:
diff changeset
539
anatofuz
parents:
diff changeset
540 static double
anatofuz
parents:
diff changeset
541 _TG_ATTRS
anatofuz
parents:
diff changeset
542 __tg_fabs(double _Complex __x) {return cabs(__x);}
anatofuz
parents:
diff changeset
543
anatofuz
parents:
diff changeset
544 static long double
anatofuz
parents:
diff changeset
545 _TG_ATTRS
anatofuz
parents:
diff changeset
546 __tg_fabs(long double _Complex __x) {return cabsl(__x);}
anatofuz
parents:
diff changeset
547
anatofuz
parents:
diff changeset
548 #undef fabs
anatofuz
parents:
diff changeset
549 #define fabs(__x) __tg_fabs(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
550
anatofuz
parents:
diff changeset
551 // atan2
anatofuz
parents:
diff changeset
552
anatofuz
parents:
diff changeset
553 static float
anatofuz
parents:
diff changeset
554 _TG_ATTRS
anatofuz
parents:
diff changeset
555 __tg_atan2(float __x, float __y) {return atan2f(__x, __y);}
anatofuz
parents:
diff changeset
556
anatofuz
parents:
diff changeset
557 static double
anatofuz
parents:
diff changeset
558 _TG_ATTRS
anatofuz
parents:
diff changeset
559 __tg_atan2(double __x, double __y) {return atan2(__x, __y);}
anatofuz
parents:
diff changeset
560
anatofuz
parents:
diff changeset
561 static long double
anatofuz
parents:
diff changeset
562 _TG_ATTRS
anatofuz
parents:
diff changeset
563 __tg_atan2(long double __x, long double __y) {return atan2l(__x, __y);}
anatofuz
parents:
diff changeset
564
anatofuz
parents:
diff changeset
565 #undef atan2
anatofuz
parents:
diff changeset
566 #define atan2(__x, __y) __tg_atan2(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
567 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
568
anatofuz
parents:
diff changeset
569 // cbrt
anatofuz
parents:
diff changeset
570
anatofuz
parents:
diff changeset
571 static float
anatofuz
parents:
diff changeset
572 _TG_ATTRS
anatofuz
parents:
diff changeset
573 __tg_cbrt(float __x) {return cbrtf(__x);}
anatofuz
parents:
diff changeset
574
anatofuz
parents:
diff changeset
575 static double
anatofuz
parents:
diff changeset
576 _TG_ATTRS
anatofuz
parents:
diff changeset
577 __tg_cbrt(double __x) {return cbrt(__x);}
anatofuz
parents:
diff changeset
578
anatofuz
parents:
diff changeset
579 static long double
anatofuz
parents:
diff changeset
580 _TG_ATTRS
anatofuz
parents:
diff changeset
581 __tg_cbrt(long double __x) {return cbrtl(__x);}
anatofuz
parents:
diff changeset
582
anatofuz
parents:
diff changeset
583 #undef cbrt
anatofuz
parents:
diff changeset
584 #define cbrt(__x) __tg_cbrt(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
585
anatofuz
parents:
diff changeset
586 // ceil
anatofuz
parents:
diff changeset
587
anatofuz
parents:
diff changeset
588 static float
anatofuz
parents:
diff changeset
589 _TG_ATTRS
anatofuz
parents:
diff changeset
590 __tg_ceil(float __x) {return ceilf(__x);}
anatofuz
parents:
diff changeset
591
anatofuz
parents:
diff changeset
592 static double
anatofuz
parents:
diff changeset
593 _TG_ATTRS
anatofuz
parents:
diff changeset
594 __tg_ceil(double __x) {return ceil(__x);}
anatofuz
parents:
diff changeset
595
anatofuz
parents:
diff changeset
596 static long double
anatofuz
parents:
diff changeset
597 _TG_ATTRS
anatofuz
parents:
diff changeset
598 __tg_ceil(long double __x) {return ceill(__x);}
anatofuz
parents:
diff changeset
599
anatofuz
parents:
diff changeset
600 #undef ceil
anatofuz
parents:
diff changeset
601 #define ceil(__x) __tg_ceil(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
602
anatofuz
parents:
diff changeset
603 // copysign
anatofuz
parents:
diff changeset
604
anatofuz
parents:
diff changeset
605 static float
anatofuz
parents:
diff changeset
606 _TG_ATTRS
anatofuz
parents:
diff changeset
607 __tg_copysign(float __x, float __y) {return copysignf(__x, __y);}
anatofuz
parents:
diff changeset
608
anatofuz
parents:
diff changeset
609 static double
anatofuz
parents:
diff changeset
610 _TG_ATTRS
anatofuz
parents:
diff changeset
611 __tg_copysign(double __x, double __y) {return copysign(__x, __y);}
anatofuz
parents:
diff changeset
612
anatofuz
parents:
diff changeset
613 static long double
anatofuz
parents:
diff changeset
614 _TG_ATTRS
anatofuz
parents:
diff changeset
615 __tg_copysign(long double __x, long double __y) {return copysignl(__x, __y);}
anatofuz
parents:
diff changeset
616
anatofuz
parents:
diff changeset
617 #undef copysign
anatofuz
parents:
diff changeset
618 #define copysign(__x, __y) __tg_copysign(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
619 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
620
anatofuz
parents:
diff changeset
621 // erf
anatofuz
parents:
diff changeset
622
anatofuz
parents:
diff changeset
623 static float
anatofuz
parents:
diff changeset
624 _TG_ATTRS
anatofuz
parents:
diff changeset
625 __tg_erf(float __x) {return erff(__x);}
anatofuz
parents:
diff changeset
626
anatofuz
parents:
diff changeset
627 static double
anatofuz
parents:
diff changeset
628 _TG_ATTRS
anatofuz
parents:
diff changeset
629 __tg_erf(double __x) {return erf(__x);}
anatofuz
parents:
diff changeset
630
anatofuz
parents:
diff changeset
631 static long double
anatofuz
parents:
diff changeset
632 _TG_ATTRS
anatofuz
parents:
diff changeset
633 __tg_erf(long double __x) {return erfl(__x);}
anatofuz
parents:
diff changeset
634
anatofuz
parents:
diff changeset
635 #undef erf
anatofuz
parents:
diff changeset
636 #define erf(__x) __tg_erf(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
637
anatofuz
parents:
diff changeset
638 // erfc
anatofuz
parents:
diff changeset
639
anatofuz
parents:
diff changeset
640 static float
anatofuz
parents:
diff changeset
641 _TG_ATTRS
anatofuz
parents:
diff changeset
642 __tg_erfc(float __x) {return erfcf(__x);}
anatofuz
parents:
diff changeset
643
anatofuz
parents:
diff changeset
644 static double
anatofuz
parents:
diff changeset
645 _TG_ATTRS
anatofuz
parents:
diff changeset
646 __tg_erfc(double __x) {return erfc(__x);}
anatofuz
parents:
diff changeset
647
anatofuz
parents:
diff changeset
648 static long double
anatofuz
parents:
diff changeset
649 _TG_ATTRS
anatofuz
parents:
diff changeset
650 __tg_erfc(long double __x) {return erfcl(__x);}
anatofuz
parents:
diff changeset
651
anatofuz
parents:
diff changeset
652 #undef erfc
anatofuz
parents:
diff changeset
653 #define erfc(__x) __tg_erfc(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
654
anatofuz
parents:
diff changeset
655 // exp2
anatofuz
parents:
diff changeset
656
anatofuz
parents:
diff changeset
657 static float
anatofuz
parents:
diff changeset
658 _TG_ATTRS
anatofuz
parents:
diff changeset
659 __tg_exp2(float __x) {return exp2f(__x);}
anatofuz
parents:
diff changeset
660
anatofuz
parents:
diff changeset
661 static double
anatofuz
parents:
diff changeset
662 _TG_ATTRS
anatofuz
parents:
diff changeset
663 __tg_exp2(double __x) {return exp2(__x);}
anatofuz
parents:
diff changeset
664
anatofuz
parents:
diff changeset
665 static long double
anatofuz
parents:
diff changeset
666 _TG_ATTRS
anatofuz
parents:
diff changeset
667 __tg_exp2(long double __x) {return exp2l(__x);}
anatofuz
parents:
diff changeset
668
anatofuz
parents:
diff changeset
669 #undef exp2
anatofuz
parents:
diff changeset
670 #define exp2(__x) __tg_exp2(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
671
anatofuz
parents:
diff changeset
672 // expm1
anatofuz
parents:
diff changeset
673
anatofuz
parents:
diff changeset
674 static float
anatofuz
parents:
diff changeset
675 _TG_ATTRS
anatofuz
parents:
diff changeset
676 __tg_expm1(float __x) {return expm1f(__x);}
anatofuz
parents:
diff changeset
677
anatofuz
parents:
diff changeset
678 static double
anatofuz
parents:
diff changeset
679 _TG_ATTRS
anatofuz
parents:
diff changeset
680 __tg_expm1(double __x) {return expm1(__x);}
anatofuz
parents:
diff changeset
681
anatofuz
parents:
diff changeset
682 static long double
anatofuz
parents:
diff changeset
683 _TG_ATTRS
anatofuz
parents:
diff changeset
684 __tg_expm1(long double __x) {return expm1l(__x);}
anatofuz
parents:
diff changeset
685
anatofuz
parents:
diff changeset
686 #undef expm1
anatofuz
parents:
diff changeset
687 #define expm1(__x) __tg_expm1(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
688
anatofuz
parents:
diff changeset
689 // fdim
anatofuz
parents:
diff changeset
690
anatofuz
parents:
diff changeset
691 static float
anatofuz
parents:
diff changeset
692 _TG_ATTRS
anatofuz
parents:
diff changeset
693 __tg_fdim(float __x, float __y) {return fdimf(__x, __y);}
anatofuz
parents:
diff changeset
694
anatofuz
parents:
diff changeset
695 static double
anatofuz
parents:
diff changeset
696 _TG_ATTRS
anatofuz
parents:
diff changeset
697 __tg_fdim(double __x, double __y) {return fdim(__x, __y);}
anatofuz
parents:
diff changeset
698
anatofuz
parents:
diff changeset
699 static long double
anatofuz
parents:
diff changeset
700 _TG_ATTRS
anatofuz
parents:
diff changeset
701 __tg_fdim(long double __x, long double __y) {return fdiml(__x, __y);}
anatofuz
parents:
diff changeset
702
anatofuz
parents:
diff changeset
703 #undef fdim
anatofuz
parents:
diff changeset
704 #define fdim(__x, __y) __tg_fdim(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
705 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
706
anatofuz
parents:
diff changeset
707 // floor
anatofuz
parents:
diff changeset
708
anatofuz
parents:
diff changeset
709 static float
anatofuz
parents:
diff changeset
710 _TG_ATTRS
anatofuz
parents:
diff changeset
711 __tg_floor(float __x) {return floorf(__x);}
anatofuz
parents:
diff changeset
712
anatofuz
parents:
diff changeset
713 static double
anatofuz
parents:
diff changeset
714 _TG_ATTRS
anatofuz
parents:
diff changeset
715 __tg_floor(double __x) {return floor(__x);}
anatofuz
parents:
diff changeset
716
anatofuz
parents:
diff changeset
717 static long double
anatofuz
parents:
diff changeset
718 _TG_ATTRS
anatofuz
parents:
diff changeset
719 __tg_floor(long double __x) {return floorl(__x);}
anatofuz
parents:
diff changeset
720
anatofuz
parents:
diff changeset
721 #undef floor
anatofuz
parents:
diff changeset
722 #define floor(__x) __tg_floor(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
723
anatofuz
parents:
diff changeset
724 // fma
anatofuz
parents:
diff changeset
725
anatofuz
parents:
diff changeset
726 static float
anatofuz
parents:
diff changeset
727 _TG_ATTRS
anatofuz
parents:
diff changeset
728 __tg_fma(float __x, float __y, float __z)
anatofuz
parents:
diff changeset
729 {return fmaf(__x, __y, __z);}
anatofuz
parents:
diff changeset
730
anatofuz
parents:
diff changeset
731 static double
anatofuz
parents:
diff changeset
732 _TG_ATTRS
anatofuz
parents:
diff changeset
733 __tg_fma(double __x, double __y, double __z)
anatofuz
parents:
diff changeset
734 {return fma(__x, __y, __z);}
anatofuz
parents:
diff changeset
735
anatofuz
parents:
diff changeset
736 static long double
anatofuz
parents:
diff changeset
737 _TG_ATTRS
anatofuz
parents:
diff changeset
738 __tg_fma(long double __x,long double __y, long double __z)
anatofuz
parents:
diff changeset
739 {return fmal(__x, __y, __z);}
anatofuz
parents:
diff changeset
740
anatofuz
parents:
diff changeset
741 #undef fma
anatofuz
parents:
diff changeset
742 #define fma(__x, __y, __z) \
anatofuz
parents:
diff changeset
743 __tg_fma(__tg_promote3((__x), (__y), (__z))(__x), \
anatofuz
parents:
diff changeset
744 __tg_promote3((__x), (__y), (__z))(__y), \
anatofuz
parents:
diff changeset
745 __tg_promote3((__x), (__y), (__z))(__z))
anatofuz
parents:
diff changeset
746
anatofuz
parents:
diff changeset
747 // fmax
anatofuz
parents:
diff changeset
748
anatofuz
parents:
diff changeset
749 static float
anatofuz
parents:
diff changeset
750 _TG_ATTRS
anatofuz
parents:
diff changeset
751 __tg_fmax(float __x, float __y) {return fmaxf(__x, __y);}
anatofuz
parents:
diff changeset
752
anatofuz
parents:
diff changeset
753 static double
anatofuz
parents:
diff changeset
754 _TG_ATTRS
anatofuz
parents:
diff changeset
755 __tg_fmax(double __x, double __y) {return fmax(__x, __y);}
anatofuz
parents:
diff changeset
756
anatofuz
parents:
diff changeset
757 static long double
anatofuz
parents:
diff changeset
758 _TG_ATTRS
anatofuz
parents:
diff changeset
759 __tg_fmax(long double __x, long double __y) {return fmaxl(__x, __y);}
anatofuz
parents:
diff changeset
760
anatofuz
parents:
diff changeset
761 #undef fmax
anatofuz
parents:
diff changeset
762 #define fmax(__x, __y) __tg_fmax(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
763 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
764
anatofuz
parents:
diff changeset
765 // fmin
anatofuz
parents:
diff changeset
766
anatofuz
parents:
diff changeset
767 static float
anatofuz
parents:
diff changeset
768 _TG_ATTRS
anatofuz
parents:
diff changeset
769 __tg_fmin(float __x, float __y) {return fminf(__x, __y);}
anatofuz
parents:
diff changeset
770
anatofuz
parents:
diff changeset
771 static double
anatofuz
parents:
diff changeset
772 _TG_ATTRS
anatofuz
parents:
diff changeset
773 __tg_fmin(double __x, double __y) {return fmin(__x, __y);}
anatofuz
parents:
diff changeset
774
anatofuz
parents:
diff changeset
775 static long double
anatofuz
parents:
diff changeset
776 _TG_ATTRS
anatofuz
parents:
diff changeset
777 __tg_fmin(long double __x, long double __y) {return fminl(__x, __y);}
anatofuz
parents:
diff changeset
778
anatofuz
parents:
diff changeset
779 #undef fmin
anatofuz
parents:
diff changeset
780 #define fmin(__x, __y) __tg_fmin(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
781 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
782
anatofuz
parents:
diff changeset
783 // fmod
anatofuz
parents:
diff changeset
784
anatofuz
parents:
diff changeset
785 static float
anatofuz
parents:
diff changeset
786 _TG_ATTRS
anatofuz
parents:
diff changeset
787 __tg_fmod(float __x, float __y) {return fmodf(__x, __y);}
anatofuz
parents:
diff changeset
788
anatofuz
parents:
diff changeset
789 static double
anatofuz
parents:
diff changeset
790 _TG_ATTRS
anatofuz
parents:
diff changeset
791 __tg_fmod(double __x, double __y) {return fmod(__x, __y);}
anatofuz
parents:
diff changeset
792
anatofuz
parents:
diff changeset
793 static long double
anatofuz
parents:
diff changeset
794 _TG_ATTRS
anatofuz
parents:
diff changeset
795 __tg_fmod(long double __x, long double __y) {return fmodl(__x, __y);}
anatofuz
parents:
diff changeset
796
anatofuz
parents:
diff changeset
797 #undef fmod
anatofuz
parents:
diff changeset
798 #define fmod(__x, __y) __tg_fmod(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
799 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
800
anatofuz
parents:
diff changeset
801 // frexp
anatofuz
parents:
diff changeset
802
anatofuz
parents:
diff changeset
803 static float
anatofuz
parents:
diff changeset
804 _TG_ATTRS
anatofuz
parents:
diff changeset
805 __tg_frexp(float __x, int* __y) {return frexpf(__x, __y);}
anatofuz
parents:
diff changeset
806
anatofuz
parents:
diff changeset
807 static double
anatofuz
parents:
diff changeset
808 _TG_ATTRS
anatofuz
parents:
diff changeset
809 __tg_frexp(double __x, int* __y) {return frexp(__x, __y);}
anatofuz
parents:
diff changeset
810
anatofuz
parents:
diff changeset
811 static long double
anatofuz
parents:
diff changeset
812 _TG_ATTRS
anatofuz
parents:
diff changeset
813 __tg_frexp(long double __x, int* __y) {return frexpl(__x, __y);}
anatofuz
parents:
diff changeset
814
anatofuz
parents:
diff changeset
815 #undef frexp
anatofuz
parents:
diff changeset
816 #define frexp(__x, __y) __tg_frexp(__tg_promote1((__x))(__x), __y)
anatofuz
parents:
diff changeset
817
anatofuz
parents:
diff changeset
818 // hypot
anatofuz
parents:
diff changeset
819
anatofuz
parents:
diff changeset
820 static float
anatofuz
parents:
diff changeset
821 _TG_ATTRS
anatofuz
parents:
diff changeset
822 __tg_hypot(float __x, float __y) {return hypotf(__x, __y);}
anatofuz
parents:
diff changeset
823
anatofuz
parents:
diff changeset
824 static double
anatofuz
parents:
diff changeset
825 _TG_ATTRS
anatofuz
parents:
diff changeset
826 __tg_hypot(double __x, double __y) {return hypot(__x, __y);}
anatofuz
parents:
diff changeset
827
anatofuz
parents:
diff changeset
828 static long double
anatofuz
parents:
diff changeset
829 _TG_ATTRS
anatofuz
parents:
diff changeset
830 __tg_hypot(long double __x, long double __y) {return hypotl(__x, __y);}
anatofuz
parents:
diff changeset
831
anatofuz
parents:
diff changeset
832 #undef hypot
anatofuz
parents:
diff changeset
833 #define hypot(__x, __y) __tg_hypot(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
834 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
835
anatofuz
parents:
diff changeset
836 // ilogb
anatofuz
parents:
diff changeset
837
anatofuz
parents:
diff changeset
838 static int
anatofuz
parents:
diff changeset
839 _TG_ATTRS
anatofuz
parents:
diff changeset
840 __tg_ilogb(float __x) {return ilogbf(__x);}
anatofuz
parents:
diff changeset
841
anatofuz
parents:
diff changeset
842 static int
anatofuz
parents:
diff changeset
843 _TG_ATTRS
anatofuz
parents:
diff changeset
844 __tg_ilogb(double __x) {return ilogb(__x);}
anatofuz
parents:
diff changeset
845
anatofuz
parents:
diff changeset
846 static int
anatofuz
parents:
diff changeset
847 _TG_ATTRS
anatofuz
parents:
diff changeset
848 __tg_ilogb(long double __x) {return ilogbl(__x);}
anatofuz
parents:
diff changeset
849
anatofuz
parents:
diff changeset
850 #undef ilogb
anatofuz
parents:
diff changeset
851 #define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
852
anatofuz
parents:
diff changeset
853 // ldexp
anatofuz
parents:
diff changeset
854
anatofuz
parents:
diff changeset
855 static float
anatofuz
parents:
diff changeset
856 _TG_ATTRS
anatofuz
parents:
diff changeset
857 __tg_ldexp(float __x, int __y) {return ldexpf(__x, __y);}
anatofuz
parents:
diff changeset
858
anatofuz
parents:
diff changeset
859 static double
anatofuz
parents:
diff changeset
860 _TG_ATTRS
anatofuz
parents:
diff changeset
861 __tg_ldexp(double __x, int __y) {return ldexp(__x, __y);}
anatofuz
parents:
diff changeset
862
anatofuz
parents:
diff changeset
863 static long double
anatofuz
parents:
diff changeset
864 _TG_ATTRS
anatofuz
parents:
diff changeset
865 __tg_ldexp(long double __x, int __y) {return ldexpl(__x, __y);}
anatofuz
parents:
diff changeset
866
anatofuz
parents:
diff changeset
867 #undef ldexp
anatofuz
parents:
diff changeset
868 #define ldexp(__x, __y) __tg_ldexp(__tg_promote1((__x))(__x), __y)
anatofuz
parents:
diff changeset
869
anatofuz
parents:
diff changeset
870 // lgamma
anatofuz
parents:
diff changeset
871
anatofuz
parents:
diff changeset
872 static float
anatofuz
parents:
diff changeset
873 _TG_ATTRS
anatofuz
parents:
diff changeset
874 __tg_lgamma(float __x) {return lgammaf(__x);}
anatofuz
parents:
diff changeset
875
anatofuz
parents:
diff changeset
876 static double
anatofuz
parents:
diff changeset
877 _TG_ATTRS
anatofuz
parents:
diff changeset
878 __tg_lgamma(double __x) {return lgamma(__x);}
anatofuz
parents:
diff changeset
879
anatofuz
parents:
diff changeset
880 static long double
anatofuz
parents:
diff changeset
881 _TG_ATTRS
anatofuz
parents:
diff changeset
882 __tg_lgamma(long double __x) {return lgammal(__x);}
anatofuz
parents:
diff changeset
883
anatofuz
parents:
diff changeset
884 #undef lgamma
anatofuz
parents:
diff changeset
885 #define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
886
anatofuz
parents:
diff changeset
887 // llrint
anatofuz
parents:
diff changeset
888
anatofuz
parents:
diff changeset
889 static long long
anatofuz
parents:
diff changeset
890 _TG_ATTRS
anatofuz
parents:
diff changeset
891 __tg_llrint(float __x) {return llrintf(__x);}
anatofuz
parents:
diff changeset
892
anatofuz
parents:
diff changeset
893 static long long
anatofuz
parents:
diff changeset
894 _TG_ATTRS
anatofuz
parents:
diff changeset
895 __tg_llrint(double __x) {return llrint(__x);}
anatofuz
parents:
diff changeset
896
anatofuz
parents:
diff changeset
897 static long long
anatofuz
parents:
diff changeset
898 _TG_ATTRS
anatofuz
parents:
diff changeset
899 __tg_llrint(long double __x) {return llrintl(__x);}
anatofuz
parents:
diff changeset
900
anatofuz
parents:
diff changeset
901 #undef llrint
anatofuz
parents:
diff changeset
902 #define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
903
anatofuz
parents:
diff changeset
904 // llround
anatofuz
parents:
diff changeset
905
anatofuz
parents:
diff changeset
906 static long long
anatofuz
parents:
diff changeset
907 _TG_ATTRS
anatofuz
parents:
diff changeset
908 __tg_llround(float __x) {return llroundf(__x);}
anatofuz
parents:
diff changeset
909
anatofuz
parents:
diff changeset
910 static long long
anatofuz
parents:
diff changeset
911 _TG_ATTRS
anatofuz
parents:
diff changeset
912 __tg_llround(double __x) {return llround(__x);}
anatofuz
parents:
diff changeset
913
anatofuz
parents:
diff changeset
914 static long long
anatofuz
parents:
diff changeset
915 _TG_ATTRS
anatofuz
parents:
diff changeset
916 __tg_llround(long double __x) {return llroundl(__x);}
anatofuz
parents:
diff changeset
917
anatofuz
parents:
diff changeset
918 #undef llround
anatofuz
parents:
diff changeset
919 #define llround(__x) __tg_llround(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
920
anatofuz
parents:
diff changeset
921 // log10
anatofuz
parents:
diff changeset
922
anatofuz
parents:
diff changeset
923 static float
anatofuz
parents:
diff changeset
924 _TG_ATTRS
anatofuz
parents:
diff changeset
925 __tg_log10(float __x) {return log10f(__x);}
anatofuz
parents:
diff changeset
926
anatofuz
parents:
diff changeset
927 static double
anatofuz
parents:
diff changeset
928 _TG_ATTRS
anatofuz
parents:
diff changeset
929 __tg_log10(double __x) {return log10(__x);}
anatofuz
parents:
diff changeset
930
anatofuz
parents:
diff changeset
931 static long double
anatofuz
parents:
diff changeset
932 _TG_ATTRS
anatofuz
parents:
diff changeset
933 __tg_log10(long double __x) {return log10l(__x);}
anatofuz
parents:
diff changeset
934
anatofuz
parents:
diff changeset
935 #undef log10
anatofuz
parents:
diff changeset
936 #define log10(__x) __tg_log10(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
937
anatofuz
parents:
diff changeset
938 // log1p
anatofuz
parents:
diff changeset
939
anatofuz
parents:
diff changeset
940 static float
anatofuz
parents:
diff changeset
941 _TG_ATTRS
anatofuz
parents:
diff changeset
942 __tg_log1p(float __x) {return log1pf(__x);}
anatofuz
parents:
diff changeset
943
anatofuz
parents:
diff changeset
944 static double
anatofuz
parents:
diff changeset
945 _TG_ATTRS
anatofuz
parents:
diff changeset
946 __tg_log1p(double __x) {return log1p(__x);}
anatofuz
parents:
diff changeset
947
anatofuz
parents:
diff changeset
948 static long double
anatofuz
parents:
diff changeset
949 _TG_ATTRS
anatofuz
parents:
diff changeset
950 __tg_log1p(long double __x) {return log1pl(__x);}
anatofuz
parents:
diff changeset
951
anatofuz
parents:
diff changeset
952 #undef log1p
anatofuz
parents:
diff changeset
953 #define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
954
anatofuz
parents:
diff changeset
955 // log2
anatofuz
parents:
diff changeset
956
anatofuz
parents:
diff changeset
957 static float
anatofuz
parents:
diff changeset
958 _TG_ATTRS
anatofuz
parents:
diff changeset
959 __tg_log2(float __x) {return log2f(__x);}
anatofuz
parents:
diff changeset
960
anatofuz
parents:
diff changeset
961 static double
anatofuz
parents:
diff changeset
962 _TG_ATTRS
anatofuz
parents:
diff changeset
963 __tg_log2(double __x) {return log2(__x);}
anatofuz
parents:
diff changeset
964
anatofuz
parents:
diff changeset
965 static long double
anatofuz
parents:
diff changeset
966 _TG_ATTRS
anatofuz
parents:
diff changeset
967 __tg_log2(long double __x) {return log2l(__x);}
anatofuz
parents:
diff changeset
968
anatofuz
parents:
diff changeset
969 #undef log2
anatofuz
parents:
diff changeset
970 #define log2(__x) __tg_log2(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
971
anatofuz
parents:
diff changeset
972 // logb
anatofuz
parents:
diff changeset
973
anatofuz
parents:
diff changeset
974 static float
anatofuz
parents:
diff changeset
975 _TG_ATTRS
anatofuz
parents:
diff changeset
976 __tg_logb(float __x) {return logbf(__x);}
anatofuz
parents:
diff changeset
977
anatofuz
parents:
diff changeset
978 static double
anatofuz
parents:
diff changeset
979 _TG_ATTRS
anatofuz
parents:
diff changeset
980 __tg_logb(double __x) {return logb(__x);}
anatofuz
parents:
diff changeset
981
anatofuz
parents:
diff changeset
982 static long double
anatofuz
parents:
diff changeset
983 _TG_ATTRS
anatofuz
parents:
diff changeset
984 __tg_logb(long double __x) {return logbl(__x);}
anatofuz
parents:
diff changeset
985
anatofuz
parents:
diff changeset
986 #undef logb
anatofuz
parents:
diff changeset
987 #define logb(__x) __tg_logb(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
988
anatofuz
parents:
diff changeset
989 // lrint
anatofuz
parents:
diff changeset
990
anatofuz
parents:
diff changeset
991 static long
anatofuz
parents:
diff changeset
992 _TG_ATTRS
anatofuz
parents:
diff changeset
993 __tg_lrint(float __x) {return lrintf(__x);}
anatofuz
parents:
diff changeset
994
anatofuz
parents:
diff changeset
995 static long
anatofuz
parents:
diff changeset
996 _TG_ATTRS
anatofuz
parents:
diff changeset
997 __tg_lrint(double __x) {return lrint(__x);}
anatofuz
parents:
diff changeset
998
anatofuz
parents:
diff changeset
999 static long
anatofuz
parents:
diff changeset
1000 _TG_ATTRS
anatofuz
parents:
diff changeset
1001 __tg_lrint(long double __x) {return lrintl(__x);}
anatofuz
parents:
diff changeset
1002
anatofuz
parents:
diff changeset
1003 #undef lrint
anatofuz
parents:
diff changeset
1004 #define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1005
anatofuz
parents:
diff changeset
1006 // lround
anatofuz
parents:
diff changeset
1007
anatofuz
parents:
diff changeset
1008 static long
anatofuz
parents:
diff changeset
1009 _TG_ATTRS
anatofuz
parents:
diff changeset
1010 __tg_lround(float __x) {return lroundf(__x);}
anatofuz
parents:
diff changeset
1011
anatofuz
parents:
diff changeset
1012 static long
anatofuz
parents:
diff changeset
1013 _TG_ATTRS
anatofuz
parents:
diff changeset
1014 __tg_lround(double __x) {return lround(__x);}
anatofuz
parents:
diff changeset
1015
anatofuz
parents:
diff changeset
1016 static long
anatofuz
parents:
diff changeset
1017 _TG_ATTRS
anatofuz
parents:
diff changeset
1018 __tg_lround(long double __x) {return lroundl(__x);}
anatofuz
parents:
diff changeset
1019
anatofuz
parents:
diff changeset
1020 #undef lround
anatofuz
parents:
diff changeset
1021 #define lround(__x) __tg_lround(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1022
anatofuz
parents:
diff changeset
1023 // nearbyint
anatofuz
parents:
diff changeset
1024
anatofuz
parents:
diff changeset
1025 static float
anatofuz
parents:
diff changeset
1026 _TG_ATTRS
anatofuz
parents:
diff changeset
1027 __tg_nearbyint(float __x) {return nearbyintf(__x);}
anatofuz
parents:
diff changeset
1028
anatofuz
parents:
diff changeset
1029 static double
anatofuz
parents:
diff changeset
1030 _TG_ATTRS
anatofuz
parents:
diff changeset
1031 __tg_nearbyint(double __x) {return nearbyint(__x);}
anatofuz
parents:
diff changeset
1032
anatofuz
parents:
diff changeset
1033 static long double
anatofuz
parents:
diff changeset
1034 _TG_ATTRS
anatofuz
parents:
diff changeset
1035 __tg_nearbyint(long double __x) {return nearbyintl(__x);}
anatofuz
parents:
diff changeset
1036
anatofuz
parents:
diff changeset
1037 #undef nearbyint
anatofuz
parents:
diff changeset
1038 #define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1039
anatofuz
parents:
diff changeset
1040 // nextafter
anatofuz
parents:
diff changeset
1041
anatofuz
parents:
diff changeset
1042 static float
anatofuz
parents:
diff changeset
1043 _TG_ATTRS
anatofuz
parents:
diff changeset
1044 __tg_nextafter(float __x, float __y) {return nextafterf(__x, __y);}
anatofuz
parents:
diff changeset
1045
anatofuz
parents:
diff changeset
1046 static double
anatofuz
parents:
diff changeset
1047 _TG_ATTRS
anatofuz
parents:
diff changeset
1048 __tg_nextafter(double __x, double __y) {return nextafter(__x, __y);}
anatofuz
parents:
diff changeset
1049
anatofuz
parents:
diff changeset
1050 static long double
anatofuz
parents:
diff changeset
1051 _TG_ATTRS
anatofuz
parents:
diff changeset
1052 __tg_nextafter(long double __x, long double __y) {return nextafterl(__x, __y);}
anatofuz
parents:
diff changeset
1053
anatofuz
parents:
diff changeset
1054 #undef nextafter
anatofuz
parents:
diff changeset
1055 #define nextafter(__x, __y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
1056 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
1057
anatofuz
parents:
diff changeset
1058 // nexttoward
anatofuz
parents:
diff changeset
1059
anatofuz
parents:
diff changeset
1060 static float
anatofuz
parents:
diff changeset
1061 _TG_ATTRS
anatofuz
parents:
diff changeset
1062 __tg_nexttoward(float __x, long double __y) {return nexttowardf(__x, __y);}
anatofuz
parents:
diff changeset
1063
anatofuz
parents:
diff changeset
1064 static double
anatofuz
parents:
diff changeset
1065 _TG_ATTRS
anatofuz
parents:
diff changeset
1066 __tg_nexttoward(double __x, long double __y) {return nexttoward(__x, __y);}
anatofuz
parents:
diff changeset
1067
anatofuz
parents:
diff changeset
1068 static long double
anatofuz
parents:
diff changeset
1069 _TG_ATTRS
anatofuz
parents:
diff changeset
1070 __tg_nexttoward(long double __x, long double __y) {return nexttowardl(__x, __y);}
anatofuz
parents:
diff changeset
1071
anatofuz
parents:
diff changeset
1072 #undef nexttoward
anatofuz
parents:
diff changeset
1073 #define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y))
anatofuz
parents:
diff changeset
1074
anatofuz
parents:
diff changeset
1075 // remainder
anatofuz
parents:
diff changeset
1076
anatofuz
parents:
diff changeset
1077 static float
anatofuz
parents:
diff changeset
1078 _TG_ATTRS
anatofuz
parents:
diff changeset
1079 __tg_remainder(float __x, float __y) {return remainderf(__x, __y);}
anatofuz
parents:
diff changeset
1080
anatofuz
parents:
diff changeset
1081 static double
anatofuz
parents:
diff changeset
1082 _TG_ATTRS
anatofuz
parents:
diff changeset
1083 __tg_remainder(double __x, double __y) {return remainder(__x, __y);}
anatofuz
parents:
diff changeset
1084
anatofuz
parents:
diff changeset
1085 static long double
anatofuz
parents:
diff changeset
1086 _TG_ATTRS
anatofuz
parents:
diff changeset
1087 __tg_remainder(long double __x, long double __y) {return remainderl(__x, __y);}
anatofuz
parents:
diff changeset
1088
anatofuz
parents:
diff changeset
1089 #undef remainder
anatofuz
parents:
diff changeset
1090 #define remainder(__x, __y) __tg_remainder(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
1091 __tg_promote2((__x), (__y))(__y))
anatofuz
parents:
diff changeset
1092
anatofuz
parents:
diff changeset
1093 // remquo
anatofuz
parents:
diff changeset
1094
anatofuz
parents:
diff changeset
1095 static float
anatofuz
parents:
diff changeset
1096 _TG_ATTRS
anatofuz
parents:
diff changeset
1097 __tg_remquo(float __x, float __y, int* __z)
anatofuz
parents:
diff changeset
1098 {return remquof(__x, __y, __z);}
anatofuz
parents:
diff changeset
1099
anatofuz
parents:
diff changeset
1100 static double
anatofuz
parents:
diff changeset
1101 _TG_ATTRS
anatofuz
parents:
diff changeset
1102 __tg_remquo(double __x, double __y, int* __z)
anatofuz
parents:
diff changeset
1103 {return remquo(__x, __y, __z);}
anatofuz
parents:
diff changeset
1104
anatofuz
parents:
diff changeset
1105 static long double
anatofuz
parents:
diff changeset
1106 _TG_ATTRS
anatofuz
parents:
diff changeset
1107 __tg_remquo(long double __x,long double __y, int* __z)
anatofuz
parents:
diff changeset
1108 {return remquol(__x, __y, __z);}
anatofuz
parents:
diff changeset
1109
anatofuz
parents:
diff changeset
1110 #undef remquo
anatofuz
parents:
diff changeset
1111 #define remquo(__x, __y, __z) \
anatofuz
parents:
diff changeset
1112 __tg_remquo(__tg_promote2((__x), (__y))(__x), \
anatofuz
parents:
diff changeset
1113 __tg_promote2((__x), (__y))(__y), \
anatofuz
parents:
diff changeset
1114 (__z))
anatofuz
parents:
diff changeset
1115
anatofuz
parents:
diff changeset
1116 // rint
anatofuz
parents:
diff changeset
1117
anatofuz
parents:
diff changeset
1118 static float
anatofuz
parents:
diff changeset
1119 _TG_ATTRS
anatofuz
parents:
diff changeset
1120 __tg_rint(float __x) {return rintf(__x);}
anatofuz
parents:
diff changeset
1121
anatofuz
parents:
diff changeset
1122 static double
anatofuz
parents:
diff changeset
1123 _TG_ATTRS
anatofuz
parents:
diff changeset
1124 __tg_rint(double __x) {return rint(__x);}
anatofuz
parents:
diff changeset
1125
anatofuz
parents:
diff changeset
1126 static long double
anatofuz
parents:
diff changeset
1127 _TG_ATTRS
anatofuz
parents:
diff changeset
1128 __tg_rint(long double __x) {return rintl(__x);}
anatofuz
parents:
diff changeset
1129
anatofuz
parents:
diff changeset
1130 #undef rint
anatofuz
parents:
diff changeset
1131 #define rint(__x) __tg_rint(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1132
anatofuz
parents:
diff changeset
1133 // round
anatofuz
parents:
diff changeset
1134
anatofuz
parents:
diff changeset
1135 static float
anatofuz
parents:
diff changeset
1136 _TG_ATTRS
anatofuz
parents:
diff changeset
1137 __tg_round(float __x) {return roundf(__x);}
anatofuz
parents:
diff changeset
1138
anatofuz
parents:
diff changeset
1139 static double
anatofuz
parents:
diff changeset
1140 _TG_ATTRS
anatofuz
parents:
diff changeset
1141 __tg_round(double __x) {return round(__x);}
anatofuz
parents:
diff changeset
1142
anatofuz
parents:
diff changeset
1143 static long double
anatofuz
parents:
diff changeset
1144 _TG_ATTRS
anatofuz
parents:
diff changeset
1145 __tg_round(long double __x) {return roundl(__x);}
anatofuz
parents:
diff changeset
1146
anatofuz
parents:
diff changeset
1147 #undef round
anatofuz
parents:
diff changeset
1148 #define round(__x) __tg_round(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1149
anatofuz
parents:
diff changeset
1150 // scalbn
anatofuz
parents:
diff changeset
1151
anatofuz
parents:
diff changeset
1152 static float
anatofuz
parents:
diff changeset
1153 _TG_ATTRS
anatofuz
parents:
diff changeset
1154 __tg_scalbn(float __x, int __y) {return scalbnf(__x, __y);}
anatofuz
parents:
diff changeset
1155
anatofuz
parents:
diff changeset
1156 static double
anatofuz
parents:
diff changeset
1157 _TG_ATTRS
anatofuz
parents:
diff changeset
1158 __tg_scalbn(double __x, int __y) {return scalbn(__x, __y);}
anatofuz
parents:
diff changeset
1159
anatofuz
parents:
diff changeset
1160 static long double
anatofuz
parents:
diff changeset
1161 _TG_ATTRS
anatofuz
parents:
diff changeset
1162 __tg_scalbn(long double __x, int __y) {return scalbnl(__x, __y);}
anatofuz
parents:
diff changeset
1163
anatofuz
parents:
diff changeset
1164 #undef scalbn
anatofuz
parents:
diff changeset
1165 #define scalbn(__x, __y) __tg_scalbn(__tg_promote1((__x))(__x), __y)
anatofuz
parents:
diff changeset
1166
anatofuz
parents:
diff changeset
1167 // scalbln
anatofuz
parents:
diff changeset
1168
anatofuz
parents:
diff changeset
1169 static float
anatofuz
parents:
diff changeset
1170 _TG_ATTRS
anatofuz
parents:
diff changeset
1171 __tg_scalbln(float __x, long __y) {return scalblnf(__x, __y);}
anatofuz
parents:
diff changeset
1172
anatofuz
parents:
diff changeset
1173 static double
anatofuz
parents:
diff changeset
1174 _TG_ATTRS
anatofuz
parents:
diff changeset
1175 __tg_scalbln(double __x, long __y) {return scalbln(__x, __y);}
anatofuz
parents:
diff changeset
1176
anatofuz
parents:
diff changeset
1177 static long double
anatofuz
parents:
diff changeset
1178 _TG_ATTRS
anatofuz
parents:
diff changeset
1179 __tg_scalbln(long double __x, long __y) {return scalblnl(__x, __y);}
anatofuz
parents:
diff changeset
1180
anatofuz
parents:
diff changeset
1181 #undef scalbln
anatofuz
parents:
diff changeset
1182 #define scalbln(__x, __y) __tg_scalbln(__tg_promote1((__x))(__x), __y)
anatofuz
parents:
diff changeset
1183
anatofuz
parents:
diff changeset
1184 // tgamma
anatofuz
parents:
diff changeset
1185
anatofuz
parents:
diff changeset
1186 static float
anatofuz
parents:
diff changeset
1187 _TG_ATTRS
anatofuz
parents:
diff changeset
1188 __tg_tgamma(float __x) {return tgammaf(__x);}
anatofuz
parents:
diff changeset
1189
anatofuz
parents:
diff changeset
1190 static double
anatofuz
parents:
diff changeset
1191 _TG_ATTRS
anatofuz
parents:
diff changeset
1192 __tg_tgamma(double __x) {return tgamma(__x);}
anatofuz
parents:
diff changeset
1193
anatofuz
parents:
diff changeset
1194 static long double
anatofuz
parents:
diff changeset
1195 _TG_ATTRS
anatofuz
parents:
diff changeset
1196 __tg_tgamma(long double __x) {return tgammal(__x);}
anatofuz
parents:
diff changeset
1197
anatofuz
parents:
diff changeset
1198 #undef tgamma
anatofuz
parents:
diff changeset
1199 #define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1200
anatofuz
parents:
diff changeset
1201 // trunc
anatofuz
parents:
diff changeset
1202
anatofuz
parents:
diff changeset
1203 static float
anatofuz
parents:
diff changeset
1204 _TG_ATTRS
anatofuz
parents:
diff changeset
1205 __tg_trunc(float __x) {return truncf(__x);}
anatofuz
parents:
diff changeset
1206
anatofuz
parents:
diff changeset
1207 static double
anatofuz
parents:
diff changeset
1208 _TG_ATTRS
anatofuz
parents:
diff changeset
1209 __tg_trunc(double __x) {return trunc(__x);}
anatofuz
parents:
diff changeset
1210
anatofuz
parents:
diff changeset
1211 static long double
anatofuz
parents:
diff changeset
1212 _TG_ATTRS
anatofuz
parents:
diff changeset
1213 __tg_trunc(long double __x) {return truncl(__x);}
anatofuz
parents:
diff changeset
1214
anatofuz
parents:
diff changeset
1215 #undef trunc
anatofuz
parents:
diff changeset
1216 #define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1217
anatofuz
parents:
diff changeset
1218 // carg
anatofuz
parents:
diff changeset
1219
anatofuz
parents:
diff changeset
1220 static float
anatofuz
parents:
diff changeset
1221 _TG_ATTRS
anatofuz
parents:
diff changeset
1222 __tg_carg(float __x) {return atan2f(0.F, __x);}
anatofuz
parents:
diff changeset
1223
anatofuz
parents:
diff changeset
1224 static double
anatofuz
parents:
diff changeset
1225 _TG_ATTRS
anatofuz
parents:
diff changeset
1226 __tg_carg(double __x) {return atan2(0., __x);}
anatofuz
parents:
diff changeset
1227
anatofuz
parents:
diff changeset
1228 static long double
anatofuz
parents:
diff changeset
1229 _TG_ATTRS
anatofuz
parents:
diff changeset
1230 __tg_carg(long double __x) {return atan2l(0.L, __x);}
anatofuz
parents:
diff changeset
1231
anatofuz
parents:
diff changeset
1232 static float
anatofuz
parents:
diff changeset
1233 _TG_ATTRS
anatofuz
parents:
diff changeset
1234 __tg_carg(float _Complex __x) {return cargf(__x);}
anatofuz
parents:
diff changeset
1235
anatofuz
parents:
diff changeset
1236 static double
anatofuz
parents:
diff changeset
1237 _TG_ATTRS
anatofuz
parents:
diff changeset
1238 __tg_carg(double _Complex __x) {return carg(__x);}
anatofuz
parents:
diff changeset
1239
anatofuz
parents:
diff changeset
1240 static long double
anatofuz
parents:
diff changeset
1241 _TG_ATTRS
anatofuz
parents:
diff changeset
1242 __tg_carg(long double _Complex __x) {return cargl(__x);}
anatofuz
parents:
diff changeset
1243
anatofuz
parents:
diff changeset
1244 #undef carg
anatofuz
parents:
diff changeset
1245 #define carg(__x) __tg_carg(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1246
anatofuz
parents:
diff changeset
1247 // cimag
anatofuz
parents:
diff changeset
1248
anatofuz
parents:
diff changeset
1249 static float
anatofuz
parents:
diff changeset
1250 _TG_ATTRS
anatofuz
parents:
diff changeset
1251 __tg_cimag(float __x) {return 0;}
anatofuz
parents:
diff changeset
1252
anatofuz
parents:
diff changeset
1253 static double
anatofuz
parents:
diff changeset
1254 _TG_ATTRS
anatofuz
parents:
diff changeset
1255 __tg_cimag(double __x) {return 0;}
anatofuz
parents:
diff changeset
1256
anatofuz
parents:
diff changeset
1257 static long double
anatofuz
parents:
diff changeset
1258 _TG_ATTRS
anatofuz
parents:
diff changeset
1259 __tg_cimag(long double __x) {return 0;}
anatofuz
parents:
diff changeset
1260
anatofuz
parents:
diff changeset
1261 static float
anatofuz
parents:
diff changeset
1262 _TG_ATTRS
anatofuz
parents:
diff changeset
1263 __tg_cimag(float _Complex __x) {return cimagf(__x);}
anatofuz
parents:
diff changeset
1264
anatofuz
parents:
diff changeset
1265 static double
anatofuz
parents:
diff changeset
1266 _TG_ATTRS
anatofuz
parents:
diff changeset
1267 __tg_cimag(double _Complex __x) {return cimag(__x);}
anatofuz
parents:
diff changeset
1268
anatofuz
parents:
diff changeset
1269 static long double
anatofuz
parents:
diff changeset
1270 _TG_ATTRS
anatofuz
parents:
diff changeset
1271 __tg_cimag(long double _Complex __x) {return cimagl(__x);}
anatofuz
parents:
diff changeset
1272
anatofuz
parents:
diff changeset
1273 #undef cimag
anatofuz
parents:
diff changeset
1274 #define cimag(__x) __tg_cimag(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1275
anatofuz
parents:
diff changeset
1276 // conj
anatofuz
parents:
diff changeset
1277
anatofuz
parents:
diff changeset
1278 static float _Complex
anatofuz
parents:
diff changeset
1279 _TG_ATTRS
anatofuz
parents:
diff changeset
1280 __tg_conj(float __x) {return __x;}
anatofuz
parents:
diff changeset
1281
anatofuz
parents:
diff changeset
1282 static double _Complex
anatofuz
parents:
diff changeset
1283 _TG_ATTRS
anatofuz
parents:
diff changeset
1284 __tg_conj(double __x) {return __x;}
anatofuz
parents:
diff changeset
1285
anatofuz
parents:
diff changeset
1286 static long double _Complex
anatofuz
parents:
diff changeset
1287 _TG_ATTRS
anatofuz
parents:
diff changeset
1288 __tg_conj(long double __x) {return __x;}
anatofuz
parents:
diff changeset
1289
anatofuz
parents:
diff changeset
1290 static float _Complex
anatofuz
parents:
diff changeset
1291 _TG_ATTRS
anatofuz
parents:
diff changeset
1292 __tg_conj(float _Complex __x) {return conjf(__x);}
anatofuz
parents:
diff changeset
1293
anatofuz
parents:
diff changeset
1294 static double _Complex
anatofuz
parents:
diff changeset
1295 _TG_ATTRS
anatofuz
parents:
diff changeset
1296 __tg_conj(double _Complex __x) {return conj(__x);}
anatofuz
parents:
diff changeset
1297
anatofuz
parents:
diff changeset
1298 static long double _Complex
anatofuz
parents:
diff changeset
1299 _TG_ATTRS
anatofuz
parents:
diff changeset
1300 __tg_conj(long double _Complex __x) {return conjl(__x);}
anatofuz
parents:
diff changeset
1301
anatofuz
parents:
diff changeset
1302 #undef conj
anatofuz
parents:
diff changeset
1303 #define conj(__x) __tg_conj(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1304
anatofuz
parents:
diff changeset
1305 // cproj
anatofuz
parents:
diff changeset
1306
anatofuz
parents:
diff changeset
1307 static float _Complex
anatofuz
parents:
diff changeset
1308 _TG_ATTRS
anatofuz
parents:
diff changeset
1309 __tg_cproj(float __x) {return cprojf(__x);}
anatofuz
parents:
diff changeset
1310
anatofuz
parents:
diff changeset
1311 static double _Complex
anatofuz
parents:
diff changeset
1312 _TG_ATTRS
anatofuz
parents:
diff changeset
1313 __tg_cproj(double __x) {return cproj(__x);}
anatofuz
parents:
diff changeset
1314
anatofuz
parents:
diff changeset
1315 static long double _Complex
anatofuz
parents:
diff changeset
1316 _TG_ATTRS
anatofuz
parents:
diff changeset
1317 __tg_cproj(long double __x) {return cprojl(__x);}
anatofuz
parents:
diff changeset
1318
anatofuz
parents:
diff changeset
1319 static float _Complex
anatofuz
parents:
diff changeset
1320 _TG_ATTRS
anatofuz
parents:
diff changeset
1321 __tg_cproj(float _Complex __x) {return cprojf(__x);}
anatofuz
parents:
diff changeset
1322
anatofuz
parents:
diff changeset
1323 static double _Complex
anatofuz
parents:
diff changeset
1324 _TG_ATTRS
anatofuz
parents:
diff changeset
1325 __tg_cproj(double _Complex __x) {return cproj(__x);}
anatofuz
parents:
diff changeset
1326
anatofuz
parents:
diff changeset
1327 static long double _Complex
anatofuz
parents:
diff changeset
1328 _TG_ATTRS
anatofuz
parents:
diff changeset
1329 __tg_cproj(long double _Complex __x) {return cprojl(__x);}
anatofuz
parents:
diff changeset
1330
anatofuz
parents:
diff changeset
1331 #undef cproj
anatofuz
parents:
diff changeset
1332 #define cproj(__x) __tg_cproj(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1333
anatofuz
parents:
diff changeset
1334 // creal
anatofuz
parents:
diff changeset
1335
anatofuz
parents:
diff changeset
1336 static float
anatofuz
parents:
diff changeset
1337 _TG_ATTRS
anatofuz
parents:
diff changeset
1338 __tg_creal(float __x) {return __x;}
anatofuz
parents:
diff changeset
1339
anatofuz
parents:
diff changeset
1340 static double
anatofuz
parents:
diff changeset
1341 _TG_ATTRS
anatofuz
parents:
diff changeset
1342 __tg_creal(double __x) {return __x;}
anatofuz
parents:
diff changeset
1343
anatofuz
parents:
diff changeset
1344 static long double
anatofuz
parents:
diff changeset
1345 _TG_ATTRS
anatofuz
parents:
diff changeset
1346 __tg_creal(long double __x) {return __x;}
anatofuz
parents:
diff changeset
1347
anatofuz
parents:
diff changeset
1348 static float
anatofuz
parents:
diff changeset
1349 _TG_ATTRS
anatofuz
parents:
diff changeset
1350 __tg_creal(float _Complex __x) {return crealf(__x);}
anatofuz
parents:
diff changeset
1351
anatofuz
parents:
diff changeset
1352 static double
anatofuz
parents:
diff changeset
1353 _TG_ATTRS
anatofuz
parents:
diff changeset
1354 __tg_creal(double _Complex __x) {return creal(__x);}
anatofuz
parents:
diff changeset
1355
anatofuz
parents:
diff changeset
1356 static long double
anatofuz
parents:
diff changeset
1357 _TG_ATTRS
anatofuz
parents:
diff changeset
1358 __tg_creal(long double _Complex __x) {return creall(__x);}
anatofuz
parents:
diff changeset
1359
anatofuz
parents:
diff changeset
1360 #undef creal
anatofuz
parents:
diff changeset
1361 #define creal(__x) __tg_creal(__tg_promote1((__x))(__x))
anatofuz
parents:
diff changeset
1362
anatofuz
parents:
diff changeset
1363 #undef _TG_ATTRSp
anatofuz
parents:
diff changeset
1364 #undef _TG_ATTRS
anatofuz
parents:
diff changeset
1365
anatofuz
parents:
diff changeset
1366 #endif /* __cplusplus */
anatofuz
parents:
diff changeset
1367 #endif /* __has_include_next */
anatofuz
parents:
diff changeset
1368 #endif /* __CLANG_TGMATH_H */