xref: /freebsd/contrib/llvm-project/libcxx/modules/std/cmath.inc (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
15f757f3fSDimitry Andric// -*- C++ -*-
25f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
35f757f3fSDimitry Andric//
45f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
55f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
65f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
75f757f3fSDimitry Andric//
85f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
95f757f3fSDimitry Andric
105f757f3fSDimitry Andricexport namespace std {
115f757f3fSDimitry Andric
12*0fca6ea1SDimitry Andric  using std::double_t _LIBCPP_USING_IF_EXISTS;
13*0fca6ea1SDimitry Andric  using std::float_t _LIBCPP_USING_IF_EXISTS;
145f757f3fSDimitry Andric
15*0fca6ea1SDimitry Andric  using std::acos _LIBCPP_USING_IF_EXISTS;
16*0fca6ea1SDimitry Andric  using std::acosf _LIBCPP_USING_IF_EXISTS;
17*0fca6ea1SDimitry Andric  using std::acosl _LIBCPP_USING_IF_EXISTS;
185f757f3fSDimitry Andric
19*0fca6ea1SDimitry Andric  using std::asin _LIBCPP_USING_IF_EXISTS;
20*0fca6ea1SDimitry Andric  using std::asinf _LIBCPP_USING_IF_EXISTS;
21*0fca6ea1SDimitry Andric  using std::asinl _LIBCPP_USING_IF_EXISTS;
225f757f3fSDimitry Andric
23*0fca6ea1SDimitry Andric  using std::atan _LIBCPP_USING_IF_EXISTS;
24*0fca6ea1SDimitry Andric  using std::atanf _LIBCPP_USING_IF_EXISTS;
25*0fca6ea1SDimitry Andric  using std::atanl _LIBCPP_USING_IF_EXISTS;
265f757f3fSDimitry Andric
27*0fca6ea1SDimitry Andric  using std::atan2 _LIBCPP_USING_IF_EXISTS;
28*0fca6ea1SDimitry Andric  using std::atan2f _LIBCPP_USING_IF_EXISTS;
29*0fca6ea1SDimitry Andric  using std::atan2l _LIBCPP_USING_IF_EXISTS;
305f757f3fSDimitry Andric
31*0fca6ea1SDimitry Andric  using std::cos _LIBCPP_USING_IF_EXISTS;
32*0fca6ea1SDimitry Andric  using std::cosf _LIBCPP_USING_IF_EXISTS;
33*0fca6ea1SDimitry Andric  using std::cosl _LIBCPP_USING_IF_EXISTS;
345f757f3fSDimitry Andric
35*0fca6ea1SDimitry Andric  using std::sin _LIBCPP_USING_IF_EXISTS;
36*0fca6ea1SDimitry Andric  using std::sinf _LIBCPP_USING_IF_EXISTS;
37*0fca6ea1SDimitry Andric  using std::sinl _LIBCPP_USING_IF_EXISTS;
385f757f3fSDimitry Andric
39*0fca6ea1SDimitry Andric  using std::tan _LIBCPP_USING_IF_EXISTS;
40*0fca6ea1SDimitry Andric  using std::tanf _LIBCPP_USING_IF_EXISTS;
41*0fca6ea1SDimitry Andric  using std::tanl _LIBCPP_USING_IF_EXISTS;
425f757f3fSDimitry Andric
43*0fca6ea1SDimitry Andric  using std::acosh _LIBCPP_USING_IF_EXISTS;
44*0fca6ea1SDimitry Andric  using std::acoshf _LIBCPP_USING_IF_EXISTS;
45*0fca6ea1SDimitry Andric  using std::acoshl _LIBCPP_USING_IF_EXISTS;
465f757f3fSDimitry Andric
47*0fca6ea1SDimitry Andric  using std::asinh _LIBCPP_USING_IF_EXISTS;
48*0fca6ea1SDimitry Andric  using std::asinhf _LIBCPP_USING_IF_EXISTS;
49*0fca6ea1SDimitry Andric  using std::asinhl _LIBCPP_USING_IF_EXISTS;
505f757f3fSDimitry Andric
51*0fca6ea1SDimitry Andric  using std::atanh _LIBCPP_USING_IF_EXISTS;
52*0fca6ea1SDimitry Andric  using std::atanhf _LIBCPP_USING_IF_EXISTS;
53*0fca6ea1SDimitry Andric  using std::atanhl _LIBCPP_USING_IF_EXISTS;
545f757f3fSDimitry Andric
55*0fca6ea1SDimitry Andric  using std::cosh _LIBCPP_USING_IF_EXISTS;
56*0fca6ea1SDimitry Andric  using std::coshf _LIBCPP_USING_IF_EXISTS;
57*0fca6ea1SDimitry Andric  using std::coshl _LIBCPP_USING_IF_EXISTS;
585f757f3fSDimitry Andric
59*0fca6ea1SDimitry Andric  using std::sinh _LIBCPP_USING_IF_EXISTS;
60*0fca6ea1SDimitry Andric  using std::sinhf _LIBCPP_USING_IF_EXISTS;
61*0fca6ea1SDimitry Andric  using std::sinhl _LIBCPP_USING_IF_EXISTS;
625f757f3fSDimitry Andric
63*0fca6ea1SDimitry Andric  using std::tanh _LIBCPP_USING_IF_EXISTS;
64*0fca6ea1SDimitry Andric  using std::tanhf _LIBCPP_USING_IF_EXISTS;
65*0fca6ea1SDimitry Andric  using std::tanhl _LIBCPP_USING_IF_EXISTS;
665f757f3fSDimitry Andric
67*0fca6ea1SDimitry Andric  using std::exp _LIBCPP_USING_IF_EXISTS;
68*0fca6ea1SDimitry Andric  using std::expf _LIBCPP_USING_IF_EXISTS;
69*0fca6ea1SDimitry Andric  using std::expl _LIBCPP_USING_IF_EXISTS;
705f757f3fSDimitry Andric
71*0fca6ea1SDimitry Andric  using std::exp2 _LIBCPP_USING_IF_EXISTS;
72*0fca6ea1SDimitry Andric  using std::exp2f _LIBCPP_USING_IF_EXISTS;
73*0fca6ea1SDimitry Andric  using std::exp2l _LIBCPP_USING_IF_EXISTS;
745f757f3fSDimitry Andric
75*0fca6ea1SDimitry Andric  using std::expm1 _LIBCPP_USING_IF_EXISTS;
76*0fca6ea1SDimitry Andric  using std::expm1f _LIBCPP_USING_IF_EXISTS;
77*0fca6ea1SDimitry Andric  using std::expm1l _LIBCPP_USING_IF_EXISTS;
785f757f3fSDimitry Andric
79*0fca6ea1SDimitry Andric  using std::frexp _LIBCPP_USING_IF_EXISTS;
80*0fca6ea1SDimitry Andric  using std::frexpf _LIBCPP_USING_IF_EXISTS;
81*0fca6ea1SDimitry Andric  using std::frexpl _LIBCPP_USING_IF_EXISTS;
825f757f3fSDimitry Andric
83*0fca6ea1SDimitry Andric  using std::ilogb _LIBCPP_USING_IF_EXISTS;
84*0fca6ea1SDimitry Andric  using std::ilogbf _LIBCPP_USING_IF_EXISTS;
85*0fca6ea1SDimitry Andric  using std::ilogbl _LIBCPP_USING_IF_EXISTS;
865f757f3fSDimitry Andric
87*0fca6ea1SDimitry Andric  using std::ldexp _LIBCPP_USING_IF_EXISTS;
88*0fca6ea1SDimitry Andric  using std::ldexpf _LIBCPP_USING_IF_EXISTS;
89*0fca6ea1SDimitry Andric  using std::ldexpl _LIBCPP_USING_IF_EXISTS;
905f757f3fSDimitry Andric
91*0fca6ea1SDimitry Andric  using std::log _LIBCPP_USING_IF_EXISTS;
92*0fca6ea1SDimitry Andric  using std::logf _LIBCPP_USING_IF_EXISTS;
93*0fca6ea1SDimitry Andric  using std::logl _LIBCPP_USING_IF_EXISTS;
945f757f3fSDimitry Andric
95*0fca6ea1SDimitry Andric  using std::log10 _LIBCPP_USING_IF_EXISTS;
96*0fca6ea1SDimitry Andric  using std::log10f _LIBCPP_USING_IF_EXISTS;
97*0fca6ea1SDimitry Andric  using std::log10l _LIBCPP_USING_IF_EXISTS;
985f757f3fSDimitry Andric
99*0fca6ea1SDimitry Andric  using std::log1p _LIBCPP_USING_IF_EXISTS;
100*0fca6ea1SDimitry Andric  using std::log1pf _LIBCPP_USING_IF_EXISTS;
101*0fca6ea1SDimitry Andric  using std::log1pl _LIBCPP_USING_IF_EXISTS;
1025f757f3fSDimitry Andric
103*0fca6ea1SDimitry Andric  using std::log2 _LIBCPP_USING_IF_EXISTS;
104*0fca6ea1SDimitry Andric  using std::log2f _LIBCPP_USING_IF_EXISTS;
105*0fca6ea1SDimitry Andric  using std::log2l _LIBCPP_USING_IF_EXISTS;
1065f757f3fSDimitry Andric
107*0fca6ea1SDimitry Andric  using std::logb _LIBCPP_USING_IF_EXISTS;
108*0fca6ea1SDimitry Andric  using std::logbf _LIBCPP_USING_IF_EXISTS;
109*0fca6ea1SDimitry Andric  using std::logbl _LIBCPP_USING_IF_EXISTS;
1105f757f3fSDimitry Andric
111*0fca6ea1SDimitry Andric  using std::modf _LIBCPP_USING_IF_EXISTS;
112*0fca6ea1SDimitry Andric  using std::modff _LIBCPP_USING_IF_EXISTS;
113*0fca6ea1SDimitry Andric  using std::modfl _LIBCPP_USING_IF_EXISTS;
1145f757f3fSDimitry Andric
115*0fca6ea1SDimitry Andric  using std::scalbn _LIBCPP_USING_IF_EXISTS;
116*0fca6ea1SDimitry Andric  using std::scalbnf _LIBCPP_USING_IF_EXISTS;
117*0fca6ea1SDimitry Andric  using std::scalbnl _LIBCPP_USING_IF_EXISTS;
1185f757f3fSDimitry Andric
119*0fca6ea1SDimitry Andric  using std::scalbln _LIBCPP_USING_IF_EXISTS;
120*0fca6ea1SDimitry Andric  using std::scalblnf _LIBCPP_USING_IF_EXISTS;
121*0fca6ea1SDimitry Andric  using std::scalblnl _LIBCPP_USING_IF_EXISTS;
1225f757f3fSDimitry Andric
123*0fca6ea1SDimitry Andric  using std::cbrt _LIBCPP_USING_IF_EXISTS;
124*0fca6ea1SDimitry Andric  using std::cbrtf _LIBCPP_USING_IF_EXISTS;
125*0fca6ea1SDimitry Andric  using std::cbrtl _LIBCPP_USING_IF_EXISTS;
1265f757f3fSDimitry Andric
1275f757f3fSDimitry Andric  // [c.math.abs], absolute values
128*0fca6ea1SDimitry Andric  using std::abs _LIBCPP_USING_IF_EXISTS;
1295f757f3fSDimitry Andric
130*0fca6ea1SDimitry Andric  using std::fabs _LIBCPP_USING_IF_EXISTS;
131*0fca6ea1SDimitry Andric  using std::fabsf _LIBCPP_USING_IF_EXISTS;
132*0fca6ea1SDimitry Andric  using std::fabsl _LIBCPP_USING_IF_EXISTS;
1335f757f3fSDimitry Andric
134*0fca6ea1SDimitry Andric  using std::hypot _LIBCPP_USING_IF_EXISTS;
135*0fca6ea1SDimitry Andric  using std::hypotf _LIBCPP_USING_IF_EXISTS;
136*0fca6ea1SDimitry Andric  using std::hypotl _LIBCPP_USING_IF_EXISTS;
1375f757f3fSDimitry Andric
1385f757f3fSDimitry Andric  // [c.math.hypot3], three-dimensional hypotenuse
1395f757f3fSDimitry Andric
140*0fca6ea1SDimitry Andric  using std::pow _LIBCPP_USING_IF_EXISTS;
141*0fca6ea1SDimitry Andric  using std::powf _LIBCPP_USING_IF_EXISTS;
142*0fca6ea1SDimitry Andric  using std::powl _LIBCPP_USING_IF_EXISTS;
1435f757f3fSDimitry Andric
144*0fca6ea1SDimitry Andric  using std::sqrt _LIBCPP_USING_IF_EXISTS;
145*0fca6ea1SDimitry Andric  using std::sqrtf _LIBCPP_USING_IF_EXISTS;
146*0fca6ea1SDimitry Andric  using std::sqrtl _LIBCPP_USING_IF_EXISTS;
1475f757f3fSDimitry Andric
148*0fca6ea1SDimitry Andric  using std::erf _LIBCPP_USING_IF_EXISTS;
149*0fca6ea1SDimitry Andric  using std::erff _LIBCPP_USING_IF_EXISTS;
150*0fca6ea1SDimitry Andric  using std::erfl _LIBCPP_USING_IF_EXISTS;
1515f757f3fSDimitry Andric
152*0fca6ea1SDimitry Andric  using std::erfc _LIBCPP_USING_IF_EXISTS;
153*0fca6ea1SDimitry Andric  using std::erfcf _LIBCPP_USING_IF_EXISTS;
154*0fca6ea1SDimitry Andric  using std::erfcl _LIBCPP_USING_IF_EXISTS;
1555f757f3fSDimitry Andric
156*0fca6ea1SDimitry Andric  using std::lgamma _LIBCPP_USING_IF_EXISTS;
157*0fca6ea1SDimitry Andric  using std::lgammaf _LIBCPP_USING_IF_EXISTS;
158*0fca6ea1SDimitry Andric  using std::lgammal _LIBCPP_USING_IF_EXISTS;
1595f757f3fSDimitry Andric
160*0fca6ea1SDimitry Andric  using std::tgamma _LIBCPP_USING_IF_EXISTS;
161*0fca6ea1SDimitry Andric  using std::tgammaf _LIBCPP_USING_IF_EXISTS;
162*0fca6ea1SDimitry Andric  using std::tgammal _LIBCPP_USING_IF_EXISTS;
1635f757f3fSDimitry Andric
164*0fca6ea1SDimitry Andric  using std::ceil _LIBCPP_USING_IF_EXISTS;
165*0fca6ea1SDimitry Andric  using std::ceilf _LIBCPP_USING_IF_EXISTS;
166*0fca6ea1SDimitry Andric  using std::ceill _LIBCPP_USING_IF_EXISTS;
1675f757f3fSDimitry Andric
168*0fca6ea1SDimitry Andric  using std::floor _LIBCPP_USING_IF_EXISTS;
169*0fca6ea1SDimitry Andric  using std::floorf _LIBCPP_USING_IF_EXISTS;
170*0fca6ea1SDimitry Andric  using std::floorl _LIBCPP_USING_IF_EXISTS;
1715f757f3fSDimitry Andric
172*0fca6ea1SDimitry Andric  using std::nearbyint _LIBCPP_USING_IF_EXISTS;
173*0fca6ea1SDimitry Andric  using std::nearbyintf _LIBCPP_USING_IF_EXISTS;
174*0fca6ea1SDimitry Andric  using std::nearbyintl _LIBCPP_USING_IF_EXISTS;
1755f757f3fSDimitry Andric
176*0fca6ea1SDimitry Andric  using std::rint _LIBCPP_USING_IF_EXISTS;
177*0fca6ea1SDimitry Andric  using std::rintf _LIBCPP_USING_IF_EXISTS;
178*0fca6ea1SDimitry Andric  using std::rintl _LIBCPP_USING_IF_EXISTS;
1795f757f3fSDimitry Andric
180*0fca6ea1SDimitry Andric  using std::lrint _LIBCPP_USING_IF_EXISTS;
181*0fca6ea1SDimitry Andric  using std::lrintf _LIBCPP_USING_IF_EXISTS;
182*0fca6ea1SDimitry Andric  using std::lrintl _LIBCPP_USING_IF_EXISTS;
1835f757f3fSDimitry Andric
184*0fca6ea1SDimitry Andric  using std::llrint _LIBCPP_USING_IF_EXISTS;
185*0fca6ea1SDimitry Andric  using std::llrintf _LIBCPP_USING_IF_EXISTS;
186*0fca6ea1SDimitry Andric  using std::llrintl _LIBCPP_USING_IF_EXISTS;
1875f757f3fSDimitry Andric
188*0fca6ea1SDimitry Andric  using std::round _LIBCPP_USING_IF_EXISTS;
189*0fca6ea1SDimitry Andric  using std::roundf _LIBCPP_USING_IF_EXISTS;
190*0fca6ea1SDimitry Andric  using std::roundl _LIBCPP_USING_IF_EXISTS;
1915f757f3fSDimitry Andric
192*0fca6ea1SDimitry Andric  using std::lround _LIBCPP_USING_IF_EXISTS;
193*0fca6ea1SDimitry Andric  using std::lroundf _LIBCPP_USING_IF_EXISTS;
194*0fca6ea1SDimitry Andric  using std::lroundl _LIBCPP_USING_IF_EXISTS;
1955f757f3fSDimitry Andric
196*0fca6ea1SDimitry Andric  using std::llround _LIBCPP_USING_IF_EXISTS;
197*0fca6ea1SDimitry Andric  using std::llroundf _LIBCPP_USING_IF_EXISTS;
198*0fca6ea1SDimitry Andric  using std::llroundl _LIBCPP_USING_IF_EXISTS;
1995f757f3fSDimitry Andric
200*0fca6ea1SDimitry Andric  using std::trunc _LIBCPP_USING_IF_EXISTS;
201*0fca6ea1SDimitry Andric  using std::truncf _LIBCPP_USING_IF_EXISTS;
202*0fca6ea1SDimitry Andric  using std::truncl _LIBCPP_USING_IF_EXISTS;
2035f757f3fSDimitry Andric
204*0fca6ea1SDimitry Andric  using std::fmod _LIBCPP_USING_IF_EXISTS;
205*0fca6ea1SDimitry Andric  using std::fmodf _LIBCPP_USING_IF_EXISTS;
206*0fca6ea1SDimitry Andric  using std::fmodl _LIBCPP_USING_IF_EXISTS;
2075f757f3fSDimitry Andric
208*0fca6ea1SDimitry Andric  using std::remainder _LIBCPP_USING_IF_EXISTS;
209*0fca6ea1SDimitry Andric  using std::remainderf _LIBCPP_USING_IF_EXISTS;
210*0fca6ea1SDimitry Andric  using std::remainderl _LIBCPP_USING_IF_EXISTS;
2115f757f3fSDimitry Andric
212*0fca6ea1SDimitry Andric  using std::remquo _LIBCPP_USING_IF_EXISTS;
213*0fca6ea1SDimitry Andric  using std::remquof _LIBCPP_USING_IF_EXISTS;
214*0fca6ea1SDimitry Andric  using std::remquol _LIBCPP_USING_IF_EXISTS;
2155f757f3fSDimitry Andric
216*0fca6ea1SDimitry Andric  using std::copysign _LIBCPP_USING_IF_EXISTS;
217*0fca6ea1SDimitry Andric  using std::copysignf _LIBCPP_USING_IF_EXISTS;
218*0fca6ea1SDimitry Andric  using std::copysignl _LIBCPP_USING_IF_EXISTS;
2195f757f3fSDimitry Andric
220*0fca6ea1SDimitry Andric  using std::nan _LIBCPP_USING_IF_EXISTS;
221*0fca6ea1SDimitry Andric  using std::nanf _LIBCPP_USING_IF_EXISTS;
222*0fca6ea1SDimitry Andric  using std::nanl _LIBCPP_USING_IF_EXISTS;
2235f757f3fSDimitry Andric
224*0fca6ea1SDimitry Andric  using std::nextafter _LIBCPP_USING_IF_EXISTS;
225*0fca6ea1SDimitry Andric  using std::nextafterf _LIBCPP_USING_IF_EXISTS;
226*0fca6ea1SDimitry Andric  using std::nextafterl _LIBCPP_USING_IF_EXISTS;
2275f757f3fSDimitry Andric
228*0fca6ea1SDimitry Andric  using std::nexttoward _LIBCPP_USING_IF_EXISTS;
229*0fca6ea1SDimitry Andric  using std::nexttowardf _LIBCPP_USING_IF_EXISTS;
230*0fca6ea1SDimitry Andric  using std::nexttowardl _LIBCPP_USING_IF_EXISTS;
2315f757f3fSDimitry Andric
232*0fca6ea1SDimitry Andric  using std::fdim _LIBCPP_USING_IF_EXISTS;
233*0fca6ea1SDimitry Andric  using std::fdimf _LIBCPP_USING_IF_EXISTS;
234*0fca6ea1SDimitry Andric  using std::fdiml _LIBCPP_USING_IF_EXISTS;
2355f757f3fSDimitry Andric
236*0fca6ea1SDimitry Andric  using std::fmax _LIBCPP_USING_IF_EXISTS;
237*0fca6ea1SDimitry Andric  using std::fmaxf _LIBCPP_USING_IF_EXISTS;
238*0fca6ea1SDimitry Andric  using std::fmaxl _LIBCPP_USING_IF_EXISTS;
2395f757f3fSDimitry Andric
240*0fca6ea1SDimitry Andric  using std::fmin _LIBCPP_USING_IF_EXISTS;
241*0fca6ea1SDimitry Andric  using std::fminf _LIBCPP_USING_IF_EXISTS;
242*0fca6ea1SDimitry Andric  using std::fminl _LIBCPP_USING_IF_EXISTS;
2435f757f3fSDimitry Andric
244*0fca6ea1SDimitry Andric  using std::fma _LIBCPP_USING_IF_EXISTS;
245*0fca6ea1SDimitry Andric  using std::fmaf _LIBCPP_USING_IF_EXISTS;
246*0fca6ea1SDimitry Andric  using std::fmal _LIBCPP_USING_IF_EXISTS;
2475f757f3fSDimitry Andric
2485f757f3fSDimitry Andric  // [c.math.lerp], linear interpolation
249*0fca6ea1SDimitry Andric  using std::lerp _LIBCPP_USING_IF_EXISTS;
2505f757f3fSDimitry Andric
2515f757f3fSDimitry Andric  // [c.math.fpclass], classification / comparison functions
252*0fca6ea1SDimitry Andric  using std::fpclassify _LIBCPP_USING_IF_EXISTS;
253*0fca6ea1SDimitry Andric  using std::isfinite _LIBCPP_USING_IF_EXISTS;
254*0fca6ea1SDimitry Andric  using std::isgreater _LIBCPP_USING_IF_EXISTS;
255*0fca6ea1SDimitry Andric  using std::isgreaterequal _LIBCPP_USING_IF_EXISTS;
256*0fca6ea1SDimitry Andric  using std::isinf _LIBCPP_USING_IF_EXISTS;
257*0fca6ea1SDimitry Andric  using std::isless _LIBCPP_USING_IF_EXISTS;
258*0fca6ea1SDimitry Andric  using std::islessequal _LIBCPP_USING_IF_EXISTS;
259*0fca6ea1SDimitry Andric  using std::islessgreater _LIBCPP_USING_IF_EXISTS;
260*0fca6ea1SDimitry Andric  using std::isnan _LIBCPP_USING_IF_EXISTS;
261*0fca6ea1SDimitry Andric  using std::isnormal _LIBCPP_USING_IF_EXISTS;
262*0fca6ea1SDimitry Andric  using std::isunordered _LIBCPP_USING_IF_EXISTS;
263*0fca6ea1SDimitry Andric  using std::signbit _LIBCPP_USING_IF_EXISTS;
2645f757f3fSDimitry Andric
2655f757f3fSDimitry Andric  // [sf.cmath], mathematical special functions
2665f757f3fSDimitry Andric#if 0
2675f757f3fSDimitry Andric  // [sf.cmath.assoc.laguerre], associated Laguerre polynomials
2685f757f3fSDimitry Andric  using std::assoc_laguerre;
2695f757f3fSDimitry Andric  using std::assoc_laguerref;
2705f757f3fSDimitry Andric  using std::assoc_laguerrel;
2715f757f3fSDimitry Andric
2725f757f3fSDimitry Andric  // [sf.cmath.assoc.legendre], associated Legendre functions
2735f757f3fSDimitry Andric  using std::assoc_legendre;
2745f757f3fSDimitry Andric  using std::assoc_legendref;
2755f757f3fSDimitry Andric  using std::assoc_legendrel;
2765f757f3fSDimitry Andric
2775f757f3fSDimitry Andric  // [sf.cmath.beta], beta function
2785f757f3fSDimitry Andric  using std::beta;
2795f757f3fSDimitry Andric  using std::betaf;
2805f757f3fSDimitry Andric  using std::betal;
2815f757f3fSDimitry Andric
2825f757f3fSDimitry Andric  // [sf.cmath.comp.ellint.1], complete elliptic integral of the first kind
2835f757f3fSDimitry Andric  using std::comp_ellint_1;
2845f757f3fSDimitry Andric  using std::comp_ellint_1f;
2855f757f3fSDimitry Andric  using std::comp_ellint_1l;
2865f757f3fSDimitry Andric
2875f757f3fSDimitry Andric  // [sf.cmath.comp.ellint.2], complete elliptic integral of the second kind
2885f757f3fSDimitry Andric  using std::comp_ellint_2;
2895f757f3fSDimitry Andric  using std::comp_ellint_2f;
2905f757f3fSDimitry Andric  using std::comp_ellint_2l;
2915f757f3fSDimitry Andric
2925f757f3fSDimitry Andric  // [sf.cmath.comp.ellint.3], complete elliptic integral of the third kind
2935f757f3fSDimitry Andric  using std::comp_ellint_3;
2945f757f3fSDimitry Andric  using std::comp_ellint_3f;
2955f757f3fSDimitry Andric  using std::comp_ellint_3l;
2965f757f3fSDimitry Andric
2975f757f3fSDimitry Andric  // [sf.cmath.cyl.bessel.i], regular modified cylindrical Bessel functions
2985f757f3fSDimitry Andric  using std::cyl_bessel_i;
2995f757f3fSDimitry Andric  using std::cyl_bessel_if;
3005f757f3fSDimitry Andric  using std::cyl_bessel_il;
3015f757f3fSDimitry Andric
3025f757f3fSDimitry Andric  // [sf.cmath.cyl.bessel.j], cylindrical Bessel functions of the first kind
3035f757f3fSDimitry Andric  using std::cyl_bessel_j;
3045f757f3fSDimitry Andric  using std::cyl_bessel_jf;
3055f757f3fSDimitry Andric  using std::cyl_bessel_jl;
3065f757f3fSDimitry Andric
3075f757f3fSDimitry Andric  // [sf.cmath.cyl.bessel.k], irregular modified cylindrical Bessel functions
3085f757f3fSDimitry Andric  using std::cyl_bessel_k;
3095f757f3fSDimitry Andric  using std::cyl_bessel_kf;
3105f757f3fSDimitry Andric  using std::cyl_bessel_kl;
3115f757f3fSDimitry Andric
3125f757f3fSDimitry Andric  // [sf.cmath.cyl.neumann], cylindrical Neumann functions
3135f757f3fSDimitry Andric  // cylindrical Bessel functions of the second kind
3145f757f3fSDimitry Andric  using std::cyl_neumann;
3155f757f3fSDimitry Andric  using std::cyl_neumannf;
3165f757f3fSDimitry Andric  using std::cyl_neumannl;
3175f757f3fSDimitry Andric
3185f757f3fSDimitry Andric  // [sf.cmath.ellint.1], incomplete elliptic integral of the first kind
3195f757f3fSDimitry Andric  using std::ellint_1;
3205f757f3fSDimitry Andric  using std::ellint_1f;
3215f757f3fSDimitry Andric  using std::ellint_1l;
3225f757f3fSDimitry Andric
3235f757f3fSDimitry Andric  // [sf.cmath.ellint.2], incomplete elliptic integral of the second kind
3245f757f3fSDimitry Andric  using std::ellint_2;
3255f757f3fSDimitry Andric  using std::ellint_2f;
3265f757f3fSDimitry Andric  using std::ellint_2l;
3275f757f3fSDimitry Andric
3285f757f3fSDimitry Andric  // [sf.cmath.ellint.3], incomplete elliptic integral of the third kind
3295f757f3fSDimitry Andric  using std::ellint_3;
3305f757f3fSDimitry Andric  using std::ellint_3f;
3315f757f3fSDimitry Andric  using std::ellint_3l;
3325f757f3fSDimitry Andric
3335f757f3fSDimitry Andric  // [sf.cmath.expint], exponential integral
3345f757f3fSDimitry Andric  using std::expint;
3355f757f3fSDimitry Andric  using std::expintf;
3365f757f3fSDimitry Andric  using std::expintl;
337*0fca6ea1SDimitry Andric#endif
3385f757f3fSDimitry Andric
3395f757f3fSDimitry Andric  // [sf.cmath.hermite], Hermite polynomials
3405f757f3fSDimitry Andric  using std::hermite;
3415f757f3fSDimitry Andric  using std::hermitef;
3425f757f3fSDimitry Andric  using std::hermitel;
3435f757f3fSDimitry Andric
344*0fca6ea1SDimitry Andric#if 0
3455f757f3fSDimitry Andric  // [sf.cmath.laguerre], Laguerre polynomials
3465f757f3fSDimitry Andric  using std::laguerre;
3475f757f3fSDimitry Andric  using std::laguerref;
3485f757f3fSDimitry Andric  using std::laguerrel;
3495f757f3fSDimitry Andric
3505f757f3fSDimitry Andric  // [sf.cmath.legendre], Legendre polynomials
3515f757f3fSDimitry Andric  using std::legendre;
3525f757f3fSDimitry Andric  using std::legendref;
3535f757f3fSDimitry Andric  using std::legendrel;
3545f757f3fSDimitry Andric
3555f757f3fSDimitry Andric  // [sf.cmath.riemann.zeta], Riemann zeta function
3565f757f3fSDimitry Andric  using std::riemann_zeta;
3575f757f3fSDimitry Andric  using std::riemann_zetaf;
3585f757f3fSDimitry Andric  using std::riemann_zetal;
3595f757f3fSDimitry Andric
3605f757f3fSDimitry Andric  // [sf.cmath.sph.bessel], spherical Bessel functions of the first kind
3615f757f3fSDimitry Andric  using std::sph_bessel;
3625f757f3fSDimitry Andric  using std::sph_besself;
3635f757f3fSDimitry Andric  using std::sph_bessell;
3645f757f3fSDimitry Andric
3655f757f3fSDimitry Andric  // [sf.cmath.sph.legendre], spherical associated Legendre functions
3665f757f3fSDimitry Andric  using std::sph_legendre;
3675f757f3fSDimitry Andric  using std::sph_legendref;
3685f757f3fSDimitry Andric  using std::sph_legendrel;
3695f757f3fSDimitry Andric
3705f757f3fSDimitry Andric  // [sf.cmath.sph.neumann], spherical Neumann functions;
3715f757f3fSDimitry Andric  // spherical Bessel functions of the second kind
3725f757f3fSDimitry Andric  using std::sph_neumann;
3735f757f3fSDimitry Andric  using std::sph_neumannf;
3745f757f3fSDimitry Andric  using std::sph_neumannl;
3755f757f3fSDimitry Andric#endif
3765f757f3fSDimitry Andric} // namespace std
377