2 * D header file for C99.
4 * Copyright: Public Domain
5 * License: Public Domain
6 * Authors: Sean Kelly, Walter Bright
7 * Standards: ISO/IEC 9899:1999 (E)
9 module core.stdc.tgmath;
11 private import core.stdc.config;
12 private static import core.stdc.math;
13 private static import core.stdc.complex;
19 alias core.stdc.math.acos acos;
20 alias core.stdc.math.acosf acos;
21 alias core.stdc.math.acosl acos;
23 alias core.stdc.complex.cacos acos;
24 alias core.stdc.complex.cacosf acos;
25 alias core.stdc.complex.cacosl acos;
27 alias core.stdc.math.asin asin;
28 alias core.stdc.math.asinf asin;
29 alias core.stdc.math.asinl asin;
31 alias core.stdc.complex.casin asin;
32 alias core.stdc.complex.casinf asin;
33 alias core.stdc.complex.casinl asin;
35 alias core.stdc.math.atan atan;
36 alias core.stdc.math.atanf atan;
37 alias core.stdc.math.atanl atan;
39 alias core.stdc.complex.catan atan;
40 alias core.stdc.complex.catanf atan;
41 alias core.stdc.complex.catanl atan;
43 alias core.stdc.math.atan2 atan2;
44 alias core.stdc.math.atan2f atan2;
45 alias core.stdc.math.atan2l atan2;
47 alias core.stdc.math.cos cos;
48 alias core.stdc.math.cosf cos;
49 alias core.stdc.math.cosl cos;
51 alias core.stdc.complex.ccos cos;
52 alias core.stdc.complex.ccosf cos;
53 alias core.stdc.complex.ccosl cos;
55 alias core.stdc.math.sin sin;
56 alias core.stdc.math.sinf sin;
57 alias core.stdc.math.sinl sin;
59 alias core.stdc.complex.csin csin;
60 alias core.stdc.complex.csinf csin;
61 alias core.stdc.complex.csinl csin;
63 alias core.stdc.math.tan tan;
64 alias core.stdc.math.tanf tan;
65 alias core.stdc.math.tanl tan;
67 alias core.stdc.complex.ctan tan;
68 alias core.stdc.complex.ctanf tan;
69 alias core.stdc.complex.ctanl tan;
71 alias core.stdc.math.acosh acosh;
72 alias core.stdc.math.acoshf acosh;
73 alias core.stdc.math.acoshl acosh;
75 alias core.stdc.complex.cacosh acosh;
76 alias core.stdc.complex.cacoshf acosh;
77 alias core.stdc.complex.cacoshl acosh;
79 alias core.stdc.math.asinh asinh;
80 alias core.stdc.math.asinhf asinh;
81 alias core.stdc.math.asinhl asinh;
83 alias core.stdc.complex.casinh asinh;
84 alias core.stdc.complex.casinhf asinh;
85 alias core.stdc.complex.casinhl asinh;
87 alias core.stdc.math.atanh atanh;
88 alias core.stdc.math.atanhf atanh;
89 alias core.stdc.math.atanhl atanh;
91 alias core.stdc.complex.catanh atanh;
92 alias core.stdc.complex.catanhf atanh;
93 alias core.stdc.complex.catanhl atanh;
95 alias core.stdc.math.cosh cosh;
96 alias core.stdc.math.coshf cosh;
97 alias core.stdc.math.coshl cosh;
99 alias core.stdc.complex.ccosh cosh;
100 alias core.stdc.complex.ccoshf cosh;
101 alias core.stdc.complex.ccoshl cosh;
103 alias core.stdc.math.sinh sinh;
104 alias core.stdc.math.sinhf sinh;
105 alias core.stdc.math.sinhl sinh;
107 alias core.stdc.complex.csinh sinh;
108 alias core.stdc.complex.csinhf sinh;
109 alias core.stdc.complex.csinhl sinh;
111 alias core.stdc.math.tanh tanh;
112 alias core.stdc.math.tanhf tanh;
113 alias core.stdc.math.tanhl tanh;
115 alias core.stdc.complex.ctanh tanh;
116 alias core.stdc.complex.ctanhf tanh;
117 alias core.stdc.complex.ctanhl tanh;
119 alias core.stdc.math.exp exp;
120 alias core.stdc.math.expf exp;
121 alias core.stdc.math.expl exp;
123 alias core.stdc.complex.cexp exp;
124 alias core.stdc.complex.cexpf exp;
125 alias core.stdc.complex.cexpl exp;
127 alias core.stdc.math.exp2 exp2;
128 alias core.stdc.math.exp2f exp2;
129 alias core.stdc.math.exp2l exp2;
131 alias core.stdc.math.expm1 expm1;
132 alias core.stdc.math.expm1f expm1;
133 alias core.stdc.math.expm1l expm1;
135 alias core.stdc.math.frexp frexp;
136 alias core.stdc.math.frexpf frexp;
137 alias core.stdc.math.frexpl frexp;
139 alias core.stdc.math.ilogb ilogb;
140 alias core.stdc.math.ilogbf ilogb;
141 alias core.stdc.math.ilogbl ilogb;
143 alias core.stdc.math.ldexp ldexp;
144 alias core.stdc.math.ldexpf ldexp;
145 alias core.stdc.math.ldexpl ldexp;
147 alias core.stdc.math.log log;
148 alias core.stdc.math.logf log;
149 alias core.stdc.math.logl log;
151 alias core.stdc.complex.clog log;
152 alias core.stdc.complex.clogf log;
153 alias core.stdc.complex.clogl log;
155 alias core.stdc.math.log10 log10;
156 alias core.stdc.math.log10f log10;
157 alias core.stdc.math.log10l log10;
159 alias core.stdc.math.log1p log1p;
160 alias core.stdc.math.log1pf log1p;
161 alias core.stdc.math.log1pl log1p;
163 alias core.stdc.math.log2 log1p;
164 alias core.stdc.math.log2f log1p;
165 alias core.stdc.math.log2l log1p;
167 alias core.stdc.math.logb log1p;
168 alias core.stdc.math.logbf log1p;
169 alias core.stdc.math.logbl log1p;
171 alias core.stdc.math.modf modf;
172 alias core.stdc.math.modff modf;
173 // alias core.stdc.math.modfl modf;
175 alias core.stdc.math.scalbn scalbn;
176 alias core.stdc.math.scalbnf scalbn;
177 alias core.stdc.math.scalbnl scalbn;
179 alias core.stdc.math.scalbln scalbln;
180 alias core.stdc.math.scalblnf scalbln;
181 alias core.stdc.math.scalblnl scalbln;
183 alias core.stdc.math.cbrt cbrt;
184 alias core.stdc.math.cbrtf cbrt;
185 alias core.stdc.math.cbrtl cbrt;
187 alias core.stdc.math.fabs fabs;
188 alias core.stdc.math.fabsf fabs;
189 alias core.stdc.math.fabsl fabs;
191 alias core.stdc.complex.cabs fabs;
192 alias core.stdc.complex.cabsf fabs;
193 alias core.stdc.complex.cabsl fabs;
195 alias core.stdc.math.hypot hypot;
196 alias core.stdc.math.hypotf hypot;
197 alias core.stdc.math.hypotl hypot;
199 alias core.stdc.math.pow pow;
200 alias core.stdc.math.powf pow;
201 alias core.stdc.math.powl pow;
203 alias core.stdc.complex.cpow pow;
204 alias core.stdc.complex.cpowf pow;
205 alias core.stdc.complex.cpowl pow;
207 alias core.stdc.math.sqrt sqrt;
208 alias core.stdc.math.sqrtf sqrt;
209 alias core.stdc.math.sqrtl sqrt;
211 alias core.stdc.complex.csqrt sqrt;
212 alias core.stdc.complex.csqrtf sqrt;
213 alias core.stdc.complex.csqrtl sqrt;
215 alias core.stdc.math.erf erf;
216 alias core.stdc.math.erff erf;
217 alias core.stdc.math.erfl erf;
219 alias core.stdc.math.erfc erfc;
220 alias core.stdc.math.erfcf erfc;
221 alias core.stdc.math.erfcl erfc;
223 alias core.stdc.math.lgamma lgamma;
224 alias core.stdc.math.lgammaf lgamma;
225 alias core.stdc.math.lgammal lgamma;
227 alias core.stdc.math.tgamma tgamma;
228 alias core.stdc.math.tgammaf tgamma;
229 alias core.stdc.math.tgammal tgamma;
231 alias core.stdc.math.ceil ceil;
232 alias core.stdc.math.ceilf ceil;
233 alias core.stdc.math.ceill ceil;
235 alias core.stdc.math.floor floor;
236 alias core.stdc.math.floorf floor;
237 alias core.stdc.math.floorl floor;
239 alias core.stdc.math.nearbyint nearbyint;
240 alias core.stdc.math.nearbyintf nearbyint;
241 alias core.stdc.math.nearbyintl nearbyint;
243 alias core.stdc.math.rint rint;
244 alias core.stdc.math.rintf rint;
245 alias core.stdc.math.rintl rint;
247 alias core.stdc.math.lrint lrint;
248 alias core.stdc.math.lrintf lrint;
249 alias core.stdc.math.lrintl lrint;
251 alias core.stdc.math.llrint llrint;
252 alias core.stdc.math.llrintf llrint;
253 alias core.stdc.math.llrintl llrint;
255 alias core.stdc.math.round round;
256 alias core.stdc.math.roundf round;
257 alias core.stdc.math.roundl round;
259 alias core.stdc.math.lround lround;
260 alias core.stdc.math.lroundf lround;
261 alias core.stdc.math.lroundl lround;
263 alias core.stdc.math.llround llround;
264 alias core.stdc.math.llroundf llround;
265 alias core.stdc.math.llroundl llround;
267 alias core.stdc.math.trunc trunc;
268 alias core.stdc.math.truncf trunc;
269 alias core.stdc.math.truncl trunc;
271 alias core.stdc.math.fmod fmod;
272 alias core.stdc.math.fmodf fmod;
273 alias core.stdc.math.fmodl fmod;
275 alias core.stdc.math.remainder remainder;
276 alias core.stdc.math.remainderf remainder;
277 alias core.stdc.math.remainderl remainder;
279 alias core.stdc.math.remquo remquo;
280 alias core.stdc.math.remquof remquo;
281 alias core.stdc.math.remquol remquo;
283 alias core.stdc.math.copysign copysign;
284 alias core.stdc.math.copysignf copysign;
285 alias core.stdc.math.copysignl copysign;
287 // alias core.stdc.math.nan nan;
288 // alias core.stdc.math.nanf nan;
289 // alias core.stdc.math.nanl nan;
291 alias core.stdc.math.nextafter nextafter;
292 alias core.stdc.math.nextafterf nextafter;
293 alias core.stdc.math.nextafterl nextafter;
295 alias core.stdc.math.nexttoward nexttoward;
296 alias core.stdc.math.nexttowardf nexttoward;
297 alias core.stdc.math.nexttowardl nexttoward;
299 alias core.stdc.math.fdim fdim;
300 alias core.stdc.math.fdimf fdim;
301 alias core.stdc.math.fdiml fdim;
303 alias core.stdc.math.fmax fmax;
304 alias core.stdc.math.fmaxf fmax;
305 alias core.stdc.math.fmaxl fmax;
307 alias core.stdc.math.fmin fmin;
308 alias core.stdc.math.fmin fmin;
309 alias core.stdc.math.fminl fmin;
311 alias core.stdc.math.fma fma;
312 alias core.stdc.math.fmaf fma;
313 alias core.stdc.math.fmal fma;
315 alias core.stdc.complex.carg carg;
316 alias core.stdc.complex.cargf carg;
317 alias core.stdc.complex.cargl carg;
319 alias core.stdc.complex.cimag cimag;
320 alias core.stdc.complex.cimagf cimag;
321 alias core.stdc.complex.cimagl cimag;
323 alias core.stdc.complex.conj conj;
324 alias core.stdc.complex.conjf conj;
325 alias core.stdc.complex.conjl conj;
327 alias core.stdc.complex.cproj cproj;
328 alias core.stdc.complex.cprojf cproj;
329 alias core.stdc.complex.cprojl cproj;
331 // alias core.stdc.complex.creal creal;
332 // alias core.stdc.complex.crealf creal;
333 // alias core.stdc.complex.creall creal;
337 alias core.stdc.math.acos acos;
338 alias core.stdc.math.acosf acos;
339 alias core.stdc.math.acosl acos;
341 alias core.stdc.complex.cacos acos;
342 alias core.stdc.complex.cacosf acos;
343 alias core.stdc.complex.cacosl acos;
345 alias core.stdc.math.asin asin;
346 alias core.stdc.math.asinf asin;
347 alias core.stdc.math.asinl asin;
349 alias core.stdc.complex.casin asin;
350 alias core.stdc.complex.casinf asin;
351 alias core.stdc.complex.casinl asin;
353 alias core.stdc.math.atan atan;
354 alias core.stdc.math.atanf atan;
355 alias core.stdc.math.atanl atan;
357 alias core.stdc.complex.catan atan;
358 alias core.stdc.complex.catanf atan;
359 alias core.stdc.complex.catanl atan;
361 alias core.stdc.math.atan2 atan2;
362 alias core.stdc.math.atan2f atan2;
363 alias core.stdc.math.atan2l atan2;
365 alias core.stdc.math.cos cos;
366 alias core.stdc.math.cosf cos;
367 alias core.stdc.math.cosl cos;
369 alias core.stdc.complex.ccos cos;
370 alias core.stdc.complex.ccosf cos;
371 alias core.stdc.complex.ccosl cos;
373 alias core.stdc.math.sin sin;
374 alias core.stdc.math.sinf sin;
375 alias core.stdc.math.sinl sin;
377 alias core.stdc.complex.csin csin;
378 alias core.stdc.complex.csinf csin;
379 alias core.stdc.complex.csinl csin;
381 alias core.stdc.math.tan tan;
382 alias core.stdc.math.tanf tan;
383 alias core.stdc.math.tanl tan;
385 alias core.stdc.complex.ctan tan;
386 alias core.stdc.complex.ctanf tan;
387 alias core.stdc.complex.ctanl tan;
389 alias core.stdc.math.acosh acosh;
390 alias core.stdc.math.acoshf acosh;
391 alias core.stdc.math.acoshl acosh;
393 alias core.stdc.complex.cacosh acosh;
394 alias core.stdc.complex.cacoshf acosh;
395 alias core.stdc.complex.cacoshl acosh;
397 alias core.stdc.math.asinh asinh;
398 alias core.stdc.math.asinhf asinh;
399 alias core.stdc.math.asinhl asinh;
401 alias core.stdc.complex.casinh asinh;
402 alias core.stdc.complex.casinhf asinh;
403 alias core.stdc.complex.casinhl asinh;
405 alias core.stdc.math.atanh atanh;
406 alias core.stdc.math.atanhf atanh;
407 alias core.stdc.math.atanhl atanh;
409 alias core.stdc.complex.catanh atanh;
410 alias core.stdc.complex.catanhf atanh;
411 alias core.stdc.complex.catanhl atanh;
413 alias core.stdc.math.cosh cosh;
414 alias core.stdc.math.coshf cosh;
415 alias core.stdc.math.coshl cosh;
417 alias core.stdc.complex.ccosh cosh;
418 alias core.stdc.complex.ccoshf cosh;
419 alias core.stdc.complex.ccoshl cosh;
421 alias core.stdc.math.sinh sinh;
422 alias core.stdc.math.sinhf sinh;
423 alias core.stdc.math.sinhl sinh;
425 alias core.stdc.complex.csinh sinh;
426 alias core.stdc.complex.csinhf sinh;
427 alias core.stdc.complex.csinhl sinh;
429 alias core.stdc.math.tanh tanh;
430 alias core.stdc.math.tanhf tanh;
431 alias core.stdc.math.tanhl tanh;
433 alias core.stdc.complex.ctanh tanh;
434 alias core.stdc.complex.ctanhf tanh;
435 alias core.stdc.complex.ctanhl tanh;
437 alias core.stdc.math.exp exp;
438 alias core.stdc.math.expf exp;
439 alias core.stdc.math.expl exp;
441 alias core.stdc.complex.cexp exp;
442 alias core.stdc.complex.cexpf exp;
443 alias core.stdc.complex.cexpl exp;
445 alias core.stdc.math.exp2 exp2;
446 alias core.stdc.math.exp2f exp2;
447 alias core.stdc.math.exp2l exp2;
449 alias core.stdc.math.expm1 expm1;
450 alias core.stdc.math.expm1f expm1;
451 alias core.stdc.math.expm1l expm1;
453 alias core.stdc.math.frexp frexp;
454 alias core.stdc.math.frexpf frexp;
455 alias core.stdc.math.frexpl frexp;
457 alias core.stdc.math.ilogb ilogb;
458 alias core.stdc.math.ilogbf ilogb;
459 alias core.stdc.math.ilogbl ilogb;
461 alias core.stdc.math.ldexp ldexp;
462 alias core.stdc.math.ldexpf ldexp;
463 alias core.stdc.math.ldexpl ldexp;
465 alias core.stdc.math.log log;
466 alias core.stdc.math.logf log;
467 alias core.stdc.math.logl log;
469 alias core.stdc.complex.clog log;
470 alias core.stdc.complex.clogf log;
471 alias core.stdc.complex.clogl log;
473 alias core.stdc.math.log10 log10;
474 alias core.stdc.math.log10f log10;
475 alias core.stdc.math.log10l log10;
477 alias core.stdc.math.log1p log1p;
478 alias core.stdc.math.log1pf log1p;
479 alias core.stdc.math.log1pl log1p;
481 alias core.stdc.math.log2 log1p;
482 alias core.stdc.math.log2f log1p;
483 alias core.stdc.math.log2l log1p;
485 alias core.stdc.math.logb log1p;
486 alias core.stdc.math.logbf log1p;
487 alias core.stdc.math.logbl log1p;
489 alias core.stdc.math.modf modf;
490 alias core.stdc.math.modff modf;
491 alias core.stdc.math.modfl modf;
493 alias core.stdc.math.scalbn scalbn;
494 alias core.stdc.math.scalbnf scalbn;
495 alias core.stdc.math.scalbnl scalbn;
497 alias core.stdc.math.scalbln scalbln;
498 alias core.stdc.math.scalblnf scalbln;
499 alias core.stdc.math.scalblnl scalbln;
501 alias core.stdc.math.cbrt cbrt;
502 alias core.stdc.math.cbrtf cbrt;
503 alias core.stdc.math.cbrtl cbrt;
505 alias core.stdc.math.fabs fabs;
506 alias core.stdc.math.fabsf fabs;
507 alias core.stdc.math.fabsl fabs;
509 alias core.stdc.complex.cabs fabs;
510 alias core.stdc.complex.cabsf fabs;
511 alias core.stdc.complex.cabsl fabs;
513 alias core.stdc.math.hypot hypot;
514 alias core.stdc.math.hypotf hypot;
515 alias core.stdc.math.hypotl hypot;
517 alias core.stdc.math.pow pow;
518 alias core.stdc.math.powf pow;
519 alias core.stdc.math.powl pow;
521 alias core.stdc.complex.cpow pow;
522 alias core.stdc.complex.cpowf pow;
523 alias core.stdc.complex.cpowl pow;
525 alias core.stdc.math.sqrt sqrt;
526 alias core.stdc.math.sqrtf sqrt;
527 alias core.stdc.math.sqrtl sqrt;
529 alias core.stdc.complex.csqrt sqrt;
530 alias core.stdc.complex.csqrtf sqrt;
531 alias core.stdc.complex.csqrtl sqrt;
533 alias core.stdc.math.erf erf;
534 alias core.stdc.math.erff erf;
535 alias core.stdc.math.erfl erf;
537 alias core.stdc.math.erfc erfc;
538 alias core.stdc.math.erfcf erfc;
539 alias core.stdc.math.erfcl erfc;
541 alias core.stdc.math.lgamma lgamma;
542 alias core.stdc.math.lgammaf lgamma;
543 alias core.stdc.math.lgammal lgamma;
545 alias core.stdc.math.tgamma tgamma;
546 alias core.stdc.math.tgammaf tgamma;
547 alias core.stdc.math.tgammal tgamma;
549 alias core.stdc.math.ceil ceil;
550 alias core.stdc.math.ceilf ceil;
551 alias core.stdc.math.ceill ceil;
553 alias core.stdc.math.floor floor;
554 alias core.stdc.math.floorf floor;
555 alias core.stdc.math.floorl floor;
557 alias core.stdc.math.nearbyint nearbyint;
558 alias core.stdc.math.nearbyintf nearbyint;
559 alias core.stdc.math.nearbyintl nearbyint;
561 alias core.stdc.math.rint rint;
562 alias core.stdc.math.rintf rint;
563 alias core.stdc.math.rintl rint;
565 alias core.stdc.math.lrint lrint;
566 alias core.stdc.math.lrintf lrint;
567 alias core.stdc.math.lrintl lrint;
569 alias core.stdc.math.llrint llrint;
570 alias core.stdc.math.llrintf llrint;
571 alias core.stdc.math.llrintl llrint;
573 alias core.stdc.math.round round;
574 alias core.stdc.math.roundf round;
575 alias core.stdc.math.roundl round;
577 alias core.stdc.math.lround lround;
578 alias core.stdc.math.lroundf lround;
579 alias core.stdc.math.lroundl lround;
581 alias core.stdc.math.llround llround;
582 alias core.stdc.math.llroundf llround;
583 alias core.stdc.math.llroundl llround;
585 alias core.stdc.math.trunc trunc;
586 alias core.stdc.math.truncf trunc;
587 alias core.stdc.math.truncl trunc;
589 alias core.stdc.math.fmod fmod;
590 alias core.stdc.math.fmodf fmod;
591 alias core.stdc.math.fmodl fmod;
593 alias core.stdc.math.remainder remainder;
594 alias core.stdc.math.remainderf remainder;
595 alias core.stdc.math.remainderl remainder;
597 alias core.stdc.math.remquo remquo;
598 alias core.stdc.math.remquof remquo;
599 alias core.stdc.math.remquol remquo;
601 alias core.stdc.math.copysign copysign;
602 alias core.stdc.math.copysignf copysign;
603 alias core.stdc.math.copysignl copysign;
605 alias core.stdc.math.nan nan;
606 alias core.stdc.math.nanf nan;
607 alias core.stdc.math.nanl nan;
609 alias core.stdc.math.nextafter nextafter;
610 alias core.stdc.math.nextafterf nextafter;
611 alias core.stdc.math.nextafterl nextafter;
613 alias core.stdc.math.nexttoward nexttoward;
614 alias core.stdc.math.nexttowardf nexttoward;
615 alias core.stdc.math.nexttowardl nexttoward;
617 alias core.stdc.math.fdim fdim;
618 alias core.stdc.math.fdimf fdim;
619 alias core.stdc.math.fdiml fdim;
621 alias core.stdc.math.fmax fmax;
622 alias core.stdc.math.fmaxf fmax;
623 alias core.stdc.math.fmaxl fmax;
625 alias core.stdc.math.fmin fmin;
626 alias core.stdc.math.fmin fmin;
627 alias core.stdc.math.fminl fmin;
629 alias core.stdc.math.fma fma;
630 alias core.stdc.math.fmaf fma;
631 alias core.stdc.math.fmal fma;
633 alias core.stdc.complex.carg carg;
634 alias core.stdc.complex.cargf carg;
635 alias core.stdc.complex.cargl carg;
637 alias core.stdc.complex.cimag cimag;
638 alias core.stdc.complex.cimagf cimag;
639 alias core.stdc.complex.cimagl cimag;
641 alias core.stdc.complex.conj conj;
642 alias core.stdc.complex.conjf conj;
643 alias core.stdc.complex.conjl conj;
645 alias core.stdc.complex.cproj cproj;
646 alias core.stdc.complex.cprojf cproj;
647 alias core.stdc.complex.cprojl cproj;
649 // alias core.stdc.complex.creal creal;
650 // alias core.stdc.complex.crealf creal;
651 // alias core.stdc.complex.creall creal;