1// Copyright John Maddock 2008-11.
2// Use, modification and distribution are subject to the
3// Boost Software License, Version 1.0.
4// (See accompanying file LICENSE_1_0.txt
5// or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7#ifndef BOOST_MATH_C_MACROS_IPP
8#define BOOST_MATH_C_MACROS_IPP
9
10// C99 Functions:
11#ifdef acosh
12#undef acosh
13#endif
14#define acosh boost_acosh
15#ifdef acoshf
16#undef acoshf
17#endif
18#define acoshf boost_acoshf
19#ifdef acoshl
20#undef acoshl
21#endif
22#define acoshl boost_acoshl
23
24#ifdef asinh
25#undef asinh
26#endif
27#define asinh boost_asinh
28#ifdef asinhf
29#undef asinhf
30#endif
31#define asinhf boost_asinhf
32#ifdef asinhl
33#undef asinhl
34#endif
35#define asinhl boost_asinhl
36
37#ifdef atanh
38#undef atanh
39#endif
40#define atanh boost_atanh
41#ifdef atanhf
42#undef atanhf
43#endif
44#define atanhf boost_atanhf
45#ifdef atanhl
46#undef atanhl
47#endif
48#define atanhl boost_atanhl
49
50#ifdef cbrt
51#undef cbrt
52#endif
53#define cbrt boost_cbrt
54#ifdef cbrtf
55#undef cbrtf
56#endif
57#define cbrtf boost_cbrtf
58#ifdef cbrtl
59#undef cbrtl
60#endif
61#define cbrtl boost_cbrtl
62
63#ifdef copysign
64#undef copysign
65#endif
66#define copysign boost_copysign
67#ifdef copysignf
68#undef copysignf
69#endif
70#define copysignf boost_copysignf
71#ifdef copysignl
72#undef copysignl
73#endif
74#define copysignl boost_copysignl
75
76#ifdef erf
77#undef erf
78#endif
79#define erf boost_erf
80#ifdef erff
81#undef erff
82#endif
83#define erff boost_erff
84#ifdef erfl
85#undef erfl
86#endif
87#define erfl boost_erfl
88
89#ifdef erfc
90#undef erfc
91#endif
92#define erfc boost_erfc
93#ifdef erfcf
94#undef erfcf
95#endif
96#define erfcf boost_erfcf
97#ifdef erfcl
98#undef erfcl
99#endif
100#define erfcl boost_erfcl
101
102#if 0
103#ifdef exp2
104#undef exp2
105#endif
106#define exp2 boost_exp2
107#ifdef exp2f
108#undef exp2f
109#endif
110#define exp2f boost_exp2f
111#ifdef exp2l
112#undef exp2l
113#endif
114#define exp2l boost_exp2l
115#endif
116
117#ifdef expm1
118#undef expm1
119#endif
120#define expm1 boost_expm1
121#ifdef expm1f
122#undef expm1f
123#endif
124#define expm1f boost_expm1f
125#ifdef expm1l
126#undef expm1l
127#endif
128#define expm1l boost_expm1l
129
130#if 0
131#ifdef fdim
132#undef fdim
133#endif
134#define fdim boost_fdim
135#ifdef fdimf
136#undef fdimf
137#endif
138#define fdimf boost_fdimf
139#ifdef fdiml
140#undef fdiml
141#endif
142#define fdiml boost_fdiml
143#ifdef acosh
144#undef acosh
145#endif
146#define fma boost_fma
147#ifdef fmaf
148#undef fmaf
149#endif
150#define fmaf boost_fmaf
151#ifdef fmal
152#undef fmal
153#endif
154#define fmal boost_fmal
155#endif
156
157#ifdef fmax
158#undef fmax
159#endif
160#define fmax boost_fmax
161#ifdef fmaxf
162#undef fmaxf
163#endif
164#define fmaxf boost_fmaxf
165#ifdef fmaxl
166#undef fmaxl
167#endif
168#define fmaxl boost_fmaxl
169
170#ifdef fmin
171#undef fmin
172#endif
173#define fmin boost_fmin
174#ifdef fminf
175#undef fminf
176#endif
177#define fminf boost_fminf
178#ifdef fminl
179#undef fminl
180#endif
181#define fminl boost_fminl
182
183#ifdef hypot
184#undef hypot
185#endif
186#define hypot boost_hypot
187#ifdef hypotf
188#undef hypotf
189#endif
190#define hypotf boost_hypotf
191#ifdef hypotl
192#undef hypotl
193#endif
194#define hypotl boost_hypotl
195
196#if 0
197#ifdef ilogb
198#undef ilogb
199#endif
200#define ilogb boost_ilogb
201#ifdef ilogbf
202#undef ilogbf
203#endif
204#define ilogbf boost_ilogbf
205#ifdef ilogbl
206#undef ilogbl
207#endif
208#define ilogbl boost_ilogbl
209#endif
210
211#ifdef lgamma
212#undef lgamma
213#endif
214#define lgamma boost_lgamma
215#ifdef lgammaf
216#undef lgammaf
217#endif
218#define lgammaf boost_lgammaf
219#ifdef lgammal
220#undef lgammal
221#endif
222#define lgammal boost_lgammal
223
224#ifdef BOOST_HAS_LONG_LONG
225#if 0
226#ifdef llrint
227#undef llrint
228#endif
229#define llrint boost_llrint
230#ifdef llrintf
231#undef llrintf
232#endif
233#define llrintf boost_llrintf
234#ifdef llrintl
235#undef llrintl
236#endif
237#define llrintl boost_llrintl
238#endif
239#ifdef llround
240#undef llround
241#endif
242#define llround boost_llround
243#ifdef llroundf
244#undef llroundf
245#endif
246#define llroundf boost_llroundf
247#ifdef llroundl
248#undef llroundl
249#endif
250#define llroundl boost_llroundl
251#endif
252
253#ifdef log1p
254#undef log1p
255#endif
256#define log1p boost_log1p
257#ifdef log1pf
258#undef log1pf
259#endif
260#define log1pf boost_log1pf
261#ifdef log1pl
262#undef log1pl
263#endif
264#define log1pl boost_log1pl
265
266#if 0
267#ifdef log2
268#undef log2
269#endif
270#define log2 boost_log2
271#ifdef log2f
272#undef log2f
273#endif
274#define log2f boost_log2f
275#ifdef log2l
276#undef log2l
277#endif
278#define log2l boost_log2l
279
280#ifdef logb
281#undef logb
282#endif
283#define logb boost_logb
284#ifdef logbf
285#undef logbf
286#endif
287#define logbf boost_logbf
288#ifdef logbl
289#undef logbl
290#endif
291#define logbl boost_logbl
292
293#ifdef lrint
294#undef lrint
295#endif
296#define lrint boost_lrint
297#ifdef lrintf
298#undef lrintf
299#endif
300#define lrintf boost_lrintf
301#ifdef lrintl
302#undef lrintl
303#endif
304#define lrintl boost_lrintl
305#endif
306
307#ifdef lround
308#undef lround
309#endif
310#define lround boost_lround
311#ifdef lroundf
312#undef lroundf
313#endif
314#define lroundf boost_lroundf
315#ifdef lroundl
316#undef lroundl
317#endif
318#define lroundl boost_lroundl
319
320#if 0
321#ifdef nan
322#undef nan
323#endif
324#define nan boost_nan
325#ifdef nanf
326#undef nanf
327#endif
328#define nanf boost_nanf
329#ifdef nanl
330#undef nanl
331#endif
332#define nanl boost_nanl
333
334#ifdef nearbyint
335#undef nearbyint
336#endif
337#define nearbyint boost_nearbyint
338#ifdef nearbyintf
339#undef nearbyintf
340#endif
341#define nearbyintf boost_nearbyintf
342#ifdef nearbyintl
343#undef nearbyintl
344#endif
345#define nearbyintl boost_nearbyintl
346#endif
347
348#ifdef nextafter
349#undef nextafter
350#endif
351#define nextafter boost_nextafter
352#ifdef nextafterf
353#undef nextafterf
354#endif
355#define nextafterf boost_nextafterf
356#ifdef nextafterl
357#undef nextafterl
358#endif
359#define nextafterl boost_nextafterl
360
361#ifdef nexttoward
362#undef nexttoward
363#endif
364#define nexttoward boost_nexttoward
365#ifdef nexttowardf
366#undef nexttowardf
367#endif
368#define nexttowardf boost_nexttowardf
369#ifdef nexttowardl
370#undef nexttowardl
371#endif
372#define nexttowardl boost_nexttowardl
373
374#if 0
375#ifdef remainder
376#undef remainder
377#endif
378#define remainder boost_remainder
379#ifdef remainderf
380#undef remainderf
381#endif
382#define remainderf boost_remainderf
383#ifdef remainderl
384#undef remainderl
385#endif
386#define remainderl boost_remainderl
387
388#ifdef remquo
389#undef remquo
390#endif
391#define remquo boost_remquo
392#ifdef remquof
393#undef remquof
394#endif
395#define remquof boost_remquof
396#ifdef remquol
397#undef remquol
398#endif
399#define remquol boost_remquol
400
401#ifdef rint
402#undef rint
403#endif
404#define rint boost_rint
405#ifdef rintf
406#undef rintf
407#endif
408#define rintf boost_rintf
409#ifdef rintl
410#undef rintl
411#endif
412#define rintl boost_rintl
413#endif
414
415#ifdef round
416#undef round
417#endif
418#define round boost_round
419#ifdef roundf
420#undef roundf
421#endif
422#define roundf boost_roundf
423#ifdef roundl
424#undef roundl
425#endif
426#define roundl boost_roundl
427
428#if 0
429#ifdef scalbln
430#undef scalbln
431#endif
432#define scalbln boost_scalbln
433#ifdef scalblnf
434#undef scalblnf
435#endif
436#define scalblnf boost_scalblnf
437#ifdef scalblnl
438#undef scalblnl
439#endif
440#define scalblnl boost_scalblnl
441
442#ifdef scalbn
443#undef scalbn
444#endif
445#define scalbn boost_scalbn
446#ifdef scalbnf
447#undef scalbnf
448#endif
449#define scalbnf boost_scalbnf
450#ifdef scalbnl
451#undef scalbnl
452#endif
453#define scalbnl boost_scalbnl
454#endif
455
456#ifdef tgamma
457#undef tgamma
458#endif
459#define tgamma boost_tgamma
460#ifdef tgammaf
461#undef tgammaf
462#endif
463#define tgammaf boost_tgammaf
464#ifdef tgammal
465#undef tgammal
466#endif
467#define tgammal boost_tgammal
468
469#ifdef trunc
470#undef trunc
471#endif
472#define trunc boost_trunc
473#ifdef truncf
474#undef truncf
475#endif
476#define truncf boost_truncf
477#ifdef truncl
478#undef truncl
479#endif
480#define truncl boost_truncl
481
482// [5.2.1.1] associated Laguerre polynomials:
483#ifdef assoc_laguerre
484#undef assoc_laguerre
485#endif
486#define assoc_laguerre boost_assoc_laguerre
487#ifdef assoc_laguerref
488#undef assoc_laguerref
489#endif
490#define assoc_laguerref boost_assoc_laguerref
491#ifdef assoc_laguerrel
492#undef assoc_laguerrel
493#endif
494#define assoc_laguerrel boost_assoc_laguerrel
495
496// [5.2.1.2] associated Legendre functions:
497#ifdef assoc_legendre
498#undef assoc_legendre
499#endif
500#define assoc_legendre boost_assoc_legendre
501#ifdef assoc_legendref
502#undef assoc_legendref
503#endif
504#define assoc_legendref boost_assoc_legendref
505#ifdef assoc_legendrel
506#undef assoc_legendrel
507#endif
508#define assoc_legendrel boost_assoc_legendrel
509
510// [5.2.1.3] beta function:
511#ifdef beta
512#undef beta
513#endif
514#define beta boost_beta
515#ifdef betaf
516#undef betaf
517#endif
518#define betaf boost_betaf
519#ifdef betal
520#undef betal
521#endif
522#define betal boost_betal
523
524// [5.2.1.4] (complete) elliptic integral of the first kind:
525#ifdef comp_ellint_1
526#undef comp_ellint_1
527#endif
528#define comp_ellint_1 boost_comp_ellint_1
529#ifdef comp_ellint_1f
530#undef comp_ellint_1f
531#endif
532#define comp_ellint_1f boost_comp_ellint_1f
533#ifdef comp_ellint_1l
534#undef comp_ellint_1l
535#endif
536#define comp_ellint_1l boost_comp_ellint_1l
537
538// [5.2.1.5] (complete) elliptic integral of the second kind:
539#ifdef comp_ellint_2
540#undef comp_ellint_2
541#endif
542#define comp_ellint_2 boost_comp_ellint_2
543#ifdef comp_ellint_2f
544#undef comp_ellint_2f
545#endif
546#define comp_ellint_2f boost_comp_ellint_2f
547#ifdef comp_ellint_2l
548#undef comp_ellint_2l
549#endif
550#define comp_ellint_2l boost_comp_ellint_2l
551
552// [5.2.1.6] (complete) elliptic integral of the third kind:
553#ifdef comp_ellint_3
554#undef comp_ellint_3
555#endif
556#define comp_ellint_3 boost_comp_ellint_3
557#ifdef comp_ellint_3f
558#undef comp_ellint_3f
559#endif
560#define comp_ellint_3f boost_comp_ellint_3f
561#ifdef comp_ellint_3l
562#undef comp_ellint_3l
563#endif
564#define comp_ellint_3l boost_comp_ellint_3l
565
566#if 0
567// [5.2.1.7] confluent hypergeometric functions:
568#ifdef conf_hyper
569#undef conf_hyper
570#endif
571#define conf_hyper boost_conf_hyper
572#ifdef conf_hyperf
573#undef conf_hyperf
574#endif
575#define conf_hyperf boost_conf_hyperf
576#ifdef conf_hyperl
577#undef conf_hyperl
578#endif
579#define conf_hyperl boost_conf_hyperl
580#endif
581
582// [5.2.1.8] regular modified cylindrical Bessel functions:
583#ifdef cyl_bessel_i
584#undef cyl_bessel_i
585#endif
586#define cyl_bessel_i boost_cyl_bessel_i
587#ifdef cyl_bessel_if
588#undef cyl_bessel_if
589#endif
590#define cyl_bessel_if boost_cyl_bessel_if
591#ifdef cyl_bessel_il
592#undef cyl_bessel_il
593#endif
594#define cyl_bessel_il boost_cyl_bessel_il
595
596// [5.2.1.9] cylindrical Bessel functions (of the first kind):
597#ifdef cyl_bessel_j
598#undef cyl_bessel_j
599#endif
600#define cyl_bessel_j boost_cyl_bessel_j
601#ifdef cyl_bessel_jf
602#undef cyl_bessel_jf
603#endif
604#define cyl_bessel_jf boost_cyl_bessel_jf
605#ifdef cyl_bessel_jl
606#undef cyl_bessel_jl
607#endif
608#define cyl_bessel_jl boost_cyl_bessel_jl
609
610// [5.2.1.10] irregular modified cylindrical Bessel functions:
611#ifdef cyl_bessel_k
612#undef cyl_bessel_k
613#endif
614#define cyl_bessel_k boost_cyl_bessel_k
615#ifdef cyl_bessel_kf
616#undef cyl_bessel_kf
617#endif
618#define cyl_bessel_kf boost_cyl_bessel_kf
619#ifdef cyl_bessel_kl
620#undef cyl_bessel_kl
621#endif
622#define cyl_bessel_kl boost_cyl_bessel_kl
623
624// [5.2.1.11] cylindrical Neumann functions BOOST_MATH_C99_THROW_SPEC;
625// cylindrical Bessel functions (of the second kind):
626#ifdef cyl_neumann
627#undef cyl_neumann
628#endif
629#define cyl_neumann boost_cyl_neumann
630#ifdef cyl_neumannf
631#undef cyl_neumannf
632#endif
633#define cyl_neumannf boost_cyl_neumannf
634#ifdef cyl_neumannl
635#undef cyl_neumannl
636#endif
637#define cyl_neumannl boost_cyl_neumannl
638
639// [5.2.1.12] (incomplete) elliptic integral of the first kind:
640#ifdef ellint_1
641#undef ellint_1
642#endif
643#define ellint_1 boost_ellint_1
644#ifdef ellint_1f
645#undef ellint_1f
646#endif
647#define ellint_1f boost_ellint_1f
648#ifdef ellint_1l
649#undef ellint_1l
650#endif
651#define ellint_1l boost_ellint_1l
652
653// [5.2.1.13] (incomplete) elliptic integral of the second kind:
654#ifdef ellint_2
655#undef ellint_2
656#endif
657#define ellint_2 boost_ellint_2
658#ifdef ellint_2f
659#undef ellint_2f
660#endif
661#define ellint_2f boost_ellint_2f
662#ifdef ellint_2l
663#undef ellint_2l
664#endif
665#define ellint_2l boost_ellint_2l
666
667// [5.2.1.14] (incomplete) elliptic integral of the third kind:
668#ifdef ellint_3
669#undef ellint_3
670#endif
671#define ellint_3 boost_ellint_3
672#ifdef ellint_3f
673#undef ellint_3f
674#endif
675#define ellint_3f boost_ellint_3f
676#ifdef ellint_3l
677#undef ellint_3l
678#endif
679#define ellint_3l boost_ellint_3l
680
681// [5.2.1.15] exponential integral:
682#ifdef expint
683#undef expint
684#endif
685#define expint boost_expint
686#ifdef expintf
687#undef expintf
688#endif
689#define expintf boost_expintf
690#ifdef expintl
691#undef expintl
692#endif
693#define expintl boost_expintl
694
695// [5.2.1.16] Hermite polynomials:
696#ifdef hermite
697#undef hermite
698#endif
699#define hermite boost_hermite
700#ifdef hermitef
701#undef hermitef
702#endif
703#define hermitef boost_hermitef
704#ifdef hermitel
705#undef hermitel
706#endif
707#define hermitel boost_hermitel
708
709#if 0
710// [5.2.1.17] hypergeometric functions:
711#ifdef hyperg
712#undef hyperg
713#endif
714#define hyperg boost_hyperg
715#ifdef hypergf
716#undef hypergf
717#endif
718#define hypergf boost_hypergf
719#ifdef hypergl
720#undef hypergl
721#endif
722#define hypergl boost_hypergl
723#endif
724
725// [5.2.1.18] Laguerre polynomials:
726#ifdef laguerre
727#undef laguerre
728#endif
729#define laguerre boost_laguerre
730#ifdef laguerref
731#undef laguerref
732#endif
733#define laguerref boost_laguerref
734#ifdef laguerrel
735#undef laguerrel
736#endif
737#define laguerrel boost_laguerrel
738
739// [5.2.1.19] Legendre polynomials:
740#ifdef legendre
741#undef legendre
742#endif
743#define legendre boost_legendre
744#ifdef legendref
745#undef legendref
746#endif
747#define legendref boost_legendref
748#ifdef legendrel
749#undef legendrel
750#endif
751#define legendrel boost_legendrel
752
753// [5.2.1.20] Riemann zeta function:
754#ifdef riemann_zeta
755#undef riemann_zeta
756#endif
757#define riemann_zeta boost_riemann_zeta
758#ifdef riemann_zetaf
759#undef riemann_zetaf
760#endif
761#define riemann_zetaf boost_riemann_zetaf
762#ifdef riemann_zetal
763#undef riemann_zetal
764#endif
765#define riemann_zetal boost_riemann_zetal
766
767// [5.2.1.21] spherical Bessel functions (of the first kind):
768#ifdef sph_bessel
769#undef sph_bessel
770#endif
771#define sph_bessel boost_sph_bessel
772#ifdef sph_besself
773#undef sph_besself
774#endif
775#define sph_besself boost_sph_besself
776#ifdef sph_bessell
777#undef sph_bessell
778#endif
779#define sph_bessell boost_sph_bessell
780
781// [5.2.1.22] spherical associated Legendre functions:
782#ifdef sph_legendre
783#undef sph_legendre
784#endif
785#define sph_legendre boost_sph_legendre
786#ifdef sph_legendref
787#undef sph_legendref
788#endif
789#define sph_legendref boost_sph_legendref
790#ifdef sph_legendrel
791#undef sph_legendrel
792#endif
793#define sph_legendrel boost_sph_legendrel
794
795// [5.2.1.23] spherical Neumann functions BOOST_MATH_C99_THROW_SPEC;
796// spherical Bessel functions (of the second kind):
797#ifdef sph_neumann
798#undef sph_neumann
799#endif
800#define sph_neumann boost_sph_neumann
801#ifdef sph_neumannf
802#undef sph_neumannf
803#endif
804#define sph_neumannf boost_sph_neumannf
805#ifdef sph_neumannl
806#undef sph_neumannl
807#endif
808#define sph_neumannl boost_sph_neumannl
809
810#endif // BOOST_MATH_C_MACROS_IPP
811