2 //===----------------------------------------------------------------------===//
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
8 //===----------------------------------------------------------------------===//
13 export module std:cmath;
14 export namespace std {
131 // [c.math.abs], absolute values
142 // [c.math.hypot3], three-dimensional hypotenuse
176 using std::nearbyint;
177 using std::nearbyintf;
178 using std::nearbyintl;
212 using std::remainder;
213 using std::remainderf;
214 using std::remainderl;
221 using std::copysignf;
222 using std::copysignl;
228 using std::nextafter;
229 using std::nextafterf;
230 using std::nextafterl;
232 using std::nexttoward;
233 using std::nexttowardf;
234 using std::nexttowardl;
252 // [c.math.lerp], linear interpolation
255 // [c.math.fpclass], classification / comparison functions
256 using std::fpclassify;
258 using std::isgreater;
259 using std::isgreaterequal;
262 using std::islessequal;
263 using std::islessgreater;
266 using std::isunordered;
269 // [sf.cmath], mathematical special functions
271 // [sf.cmath.assoc.laguerre], associated Laguerre polynomials
272 using std::assoc_laguerre;
273 using std::assoc_laguerref;
274 using std::assoc_laguerrel;
276 // [sf.cmath.assoc.legendre], associated Legendre functions
277 using std::assoc_legendre;
278 using std::assoc_legendref;
279 using std::assoc_legendrel;
281 // [sf.cmath.beta], beta function
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;
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;
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;
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;
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;
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;
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;
322 // [sf.cmath.ellint.1], incomplete elliptic integral of the first kind
324 using std::ellint_1f;
325 using std::ellint_1l;
327 // [sf.cmath.ellint.2], incomplete elliptic integral of the second kind
329 using std::ellint_2f;
330 using std::ellint_2l;
332 // [sf.cmath.ellint.3], incomplete elliptic integral of the third kind
334 using std::ellint_3f;
335 using std::ellint_3l;
337 // [sf.cmath.expint], exponential integral
342 // [sf.cmath.hermite], Hermite polynomials
347 // [sf.cmath.laguerre], Laguerre polynomials
349 using std::laguerref;
350 using std::laguerrel;
352 // [sf.cmath.legendre], Legendre polynomials
354 using std::legendref;
355 using std::legendrel;
357 // [sf.cmath.riemann.zeta], Riemann zeta function
358 using std::riemann_zeta;
359 using std::riemann_zetaf;
360 using std::riemann_zetal;
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;
367 // [sf.cmath.sph.legendre], spherical associated Legendre functions
368 using std::sph_legendre;
369 using std::sph_legendref;
370 using std::sph_legendrel;
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;