Mathematical special functions (since C++17)
The Mathematical Special Functions library was originally part of Library TR1 ISO/IEC TR 19768:2007, then published as an independent ISO standard, ISO/IEC 29124:2010, and finally merged to ISO C++ as of C++17.
See Mathematical special functions for the ISO/IEC 29124:2010 version of this library.
Functions
Defined in header
<cmath>
|
|
(C++17)
(C++17)
(C++17)
|
associated Laguerre polynomials
(function) |
(C++17)
(C++17)
(C++17)
|
associated Legendre polynomials
(function) |
(C++17)
(C++17)
(C++17)
|
beta function
(function) |
(C++17)
(C++17)
(C++17)
|
(complete) elliptic integral of the first kind
(function) |
(C++17)
(C++17)
(C++17)
|
(complete) elliptic integral of the second kind
(function) |
(C++17)
(C++17)
(C++17)
|
(complete) elliptic integral of the third kind
(function) |
(C++17)
(C++17)
(C++17)
|
regular modified cylindrical Bessel functions
(function) |
(C++17)
(C++17)
(C++17)
|
cylindrical Bessel functions (of the first kind)
(function) |
(C++17)
(C++17)
(C++17)
|
irregular modified cylindrical Bessel functions
(function) |
(C++17)
(C++17)
(C++17)
|
cylindrical Neumann functions
(function) |
(C++17)
(C++17)
(C++17)
|
(incomplete) elliptic integral of the first kind
(function) |
(C++17)
(C++17)
(C++17)
|
(incomplete) elliptic integral of the second kind
(function) |
(C++17)
(C++17)
(C++17)
|
(incomplete) elliptic integral of the third kind
(function) |
(C++17)
(C++17)
(C++17)
|
exponential integral
(function) |
(C++17)
(C++17)
(C++17)
|
Hermite polynomials
(function) |
(C++17)
(C++17)
(C++17)
|
Legendre polynomials
(function) |
(C++17)
(C++17)
(C++17)
|
Laguerre polynomials
(function) |
(C++17)
(C++17)
(C++17)
|
Riemann zeta function
(function) |
(C++17)
(C++17)
(C++17)
|
spherical Bessel functions (of the first kind)
(function) |
(C++17)
(C++17)
(C++17)
|
spherical associated Legendre functions
(function) |
(C++17)
(C++17)
(C++17)
|
spherical Neumann functions
(function) |
Notes
The
float
and
long
double
overloads for math special functions without the "
f
" or "
l
" suffix are present in the final draft of ISO/IEC 29124:2010 (
N3060
), but absent in the published C++17/20 standard (see
LWG issue 3234
). These overloads were not provided by MSVC STL until VS 2022 17.3.
These functions are unrelated to special member functions of class types.
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_math_special_functions
|
201603L | (C++17) | Mathematical special functions |
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 3234
( P1467R9 ) |
C++17 | additional overloads for math special functions were missing | these overloads are required |
References
- C++23 standard (ISO/IEC 14882:2024):
-
- 28.7.6 Mathematical special functions [sf.cmath]
- C++20 standard (ISO/IEC 14882:2020):
-
- 26.8.6 Mathematical special functions [sf.cmath]
- C++17 standard (ISO/IEC 14882:2017):
-
- 29.9.5 Mathematical special functions [sf.cmath]