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