1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10export namespace std {
11
12  using std::double_t;
13  using std::float_t;
14
15  using std::acos;
16  using std::acosf;
17  using std::acosl;
18
19  using std::asin;
20  using std::asinf;
21  using std::asinl;
22
23  using std::atan;
24  using std::atanf;
25  using std::atanl;
26
27  using std::atan2;
28  using std::atan2f;
29  using std::atan2l;
30
31  using std::cos;
32  using std::cosf;
33  using std::cosl;
34
35  using std::sin;
36  using std::sinf;
37  using std::sinl;
38
39  using std::tan;
40  using std::tanf;
41  using std::tanl;
42
43  using std::acosh;
44  using std::acoshf;
45  using std::acoshl;
46
47  using std::asinh;
48  using std::asinhf;
49  using std::asinhl;
50
51  using std::atanh;
52  using std::atanhf;
53  using std::atanhl;
54
55  using std::cosh;
56  using std::coshf;
57  using std::coshl;
58
59  using std::sinh;
60  using std::sinhf;
61  using std::sinhl;
62
63  using std::tanh;
64  using std::tanhf;
65  using std::tanhl;
66
67  using std::exp;
68  using std::expf;
69  using std::expl;
70
71  using std::exp2;
72  using std::exp2f;
73  using std::exp2l;
74
75  using std::expm1;
76  using std::expm1f;
77  using std::expm1l;
78
79  using std::frexp;
80  using std::frexpf;
81  using std::frexpl;
82
83  using std::ilogb;
84  using std::ilogbf;
85  using std::ilogbl;
86
87  using std::ldexp;
88  using std::ldexpf;
89  using std::ldexpl;
90
91  using std::log;
92  using std::logf;
93  using std::logl;
94
95  using std::log10;
96  using std::log10f;
97  using std::log10l;
98
99  using std::log1p;
100  using std::log1pf;
101  using std::log1pl;
102
103  using std::log2;
104  using std::log2f;
105  using std::log2l;
106
107  using std::logb;
108  using std::logbf;
109  using std::logbl;
110
111  using std::modf;
112  using std::modff;
113  using std::modfl;
114
115  using std::scalbn;
116  using std::scalbnf;
117  using std::scalbnl;
118
119  using std::scalbln;
120  using std::scalblnf;
121  using std::scalblnl;
122
123  using std::cbrt;
124  using std::cbrtf;
125  using std::cbrtl;
126
127  // [c.math.abs], absolute values
128  using std::abs;
129
130  using std::fabs;
131  using std::fabsf;
132  using std::fabsl;
133
134  using std::hypot;
135  using std::hypotf;
136  using std::hypotl;
137
138  // [c.math.hypot3], three-dimensional hypotenuse
139
140  using std::pow;
141  using std::powf;
142  using std::powl;
143
144  using std::sqrt;
145  using std::sqrtf;
146  using std::sqrtl;
147
148  using std::erf;
149  using std::erff;
150  using std::erfl;
151
152  using std::erfc;
153  using std::erfcf;
154  using std::erfcl;
155
156  using std::lgamma;
157  using std::lgammaf;
158  using std::lgammal;
159
160  using std::tgamma;
161  using std::tgammaf;
162  using std::tgammal;
163
164  using std::ceil;
165  using std::ceilf;
166  using std::ceill;
167
168  using std::floor;
169  using std::floorf;
170  using std::floorl;
171
172  using std::nearbyint;
173  using std::nearbyintf;
174  using std::nearbyintl;
175
176  using std::rint;
177  using std::rintf;
178  using std::rintl;
179
180  using std::lrint;
181  using std::lrintf;
182  using std::lrintl;
183
184  using std::llrint;
185  using std::llrintf;
186  using std::llrintl;
187
188  using std::round;
189  using std::roundf;
190  using std::roundl;
191
192  using std::lround;
193  using std::lroundf;
194  using std::lroundl;
195
196  using std::llround;
197  using std::llroundf;
198  using std::llroundl;
199
200  using std::trunc;
201  using std::truncf;
202  using std::truncl;
203
204  using std::fmod;
205  using std::fmodf;
206  using std::fmodl;
207
208  using std::remainder;
209  using std::remainderf;
210  using std::remainderl;
211
212  using std::remquo;
213  using std::remquof;
214  using std::remquol;
215
216  using std::copysign;
217  using std::copysignf;
218  using std::copysignl;
219
220  using std::nan;
221  using std::nanf;
222  using std::nanl;
223
224  using std::nextafter;
225  using std::nextafterf;
226  using std::nextafterl;
227
228  using std::nexttoward;
229  using std::nexttowardf;
230  using std::nexttowardl;
231
232  using std::fdim;
233  using std::fdimf;
234  using std::fdiml;
235
236  using std::fmax;
237  using std::fmaxf;
238  using std::fmaxl;
239
240  using std::fmin;
241  using std::fminf;
242  using std::fminl;
243
244  using std::fma;
245  using std::fmaf;
246  using std::fmal;
247
248  // [c.math.lerp], linear interpolation
249  using std::lerp;
250
251  // [c.math.fpclass], classification / comparison functions
252  using std::fpclassify;
253  using std::isfinite;
254  using std::isgreater;
255  using std::isgreaterequal;
256  using std::isinf;
257  using std::isless;
258  using std::islessequal;
259  using std::islessgreater;
260  using std::isnan;
261  using std::isnormal;
262  using std::isunordered;
263  using std::signbit;
264
265  // [sf.cmath], mathematical special functions
266#if 0
267  // [sf.cmath.assoc.laguerre], associated Laguerre polynomials
268  using std::assoc_laguerre;
269  using std::assoc_laguerref;
270  using std::assoc_laguerrel;
271
272  // [sf.cmath.assoc.legendre], associated Legendre functions
273  using std::assoc_legendre;
274  using std::assoc_legendref;
275  using std::assoc_legendrel;
276
277  // [sf.cmath.beta], beta function
278  using std::beta;
279  using std::betaf;
280  using std::betal;
281
282  // [sf.cmath.comp.ellint.1], complete elliptic integral of the first kind
283  using std::comp_ellint_1;
284  using std::comp_ellint_1f;
285  using std::comp_ellint_1l;
286
287  // [sf.cmath.comp.ellint.2], complete elliptic integral of the second kind
288  using std::comp_ellint_2;
289  using std::comp_ellint_2f;
290  using std::comp_ellint_2l;
291
292  // [sf.cmath.comp.ellint.3], complete elliptic integral of the third kind
293  using std::comp_ellint_3;
294  using std::comp_ellint_3f;
295  using std::comp_ellint_3l;
296
297  // [sf.cmath.cyl.bessel.i], regular modified cylindrical Bessel functions
298  using std::cyl_bessel_i;
299  using std::cyl_bessel_if;
300  using std::cyl_bessel_il;
301
302  // [sf.cmath.cyl.bessel.j], cylindrical Bessel functions of the first kind
303  using std::cyl_bessel_j;
304  using std::cyl_bessel_jf;
305  using std::cyl_bessel_jl;
306
307  // [sf.cmath.cyl.bessel.k], irregular modified cylindrical Bessel functions
308  using std::cyl_bessel_k;
309  using std::cyl_bessel_kf;
310  using std::cyl_bessel_kl;
311
312  // [sf.cmath.cyl.neumann], cylindrical Neumann functions
313  // cylindrical Bessel functions of the second kind
314  using std::cyl_neumann;
315  using std::cyl_neumannf;
316  using std::cyl_neumannl;
317
318  // [sf.cmath.ellint.1], incomplete elliptic integral of the first kind
319  using std::ellint_1;
320  using std::ellint_1f;
321  using std::ellint_1l;
322
323  // [sf.cmath.ellint.2], incomplete elliptic integral of the second kind
324  using std::ellint_2;
325  using std::ellint_2f;
326  using std::ellint_2l;
327
328  // [sf.cmath.ellint.3], incomplete elliptic integral of the third kind
329  using std::ellint_3;
330  using std::ellint_3f;
331  using std::ellint_3l;
332
333  // [sf.cmath.expint], exponential integral
334  using std::expint;
335  using std::expintf;
336  using std::expintl;
337
338  // [sf.cmath.hermite], Hermite polynomials
339  using std::hermite;
340  using std::hermitef;
341  using std::hermitel;
342
343  // [sf.cmath.laguerre], Laguerre polynomials
344  using std::laguerre;
345  using std::laguerref;
346  using std::laguerrel;
347
348  // [sf.cmath.legendre], Legendre polynomials
349  using std::legendre;
350  using std::legendref;
351  using std::legendrel;
352
353  // [sf.cmath.riemann.zeta], Riemann zeta function
354  using std::riemann_zeta;
355  using std::riemann_zetaf;
356  using std::riemann_zetal;
357
358  // [sf.cmath.sph.bessel], spherical Bessel functions of the first kind
359  using std::sph_bessel;
360  using std::sph_besself;
361  using std::sph_bessell;
362
363  // [sf.cmath.sph.legendre], spherical associated Legendre functions
364  using std::sph_legendre;
365  using std::sph_legendref;
366  using std::sph_legendrel;
367
368  // [sf.cmath.sph.neumann], spherical Neumann functions;
369  // spherical Bessel functions of the second kind
370  using std::sph_neumann;
371  using std::sph_neumannf;
372  using std::sph_neumannl;
373#endif
374} // namespace std
375