Mathematical special functions (since C++17)

From cppreference.com
< cpp‎ | numeric
 
 
 
 

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>
associated Laguerre polynomials
(function)
associated Legendre polynomials
(function)
(C++17)(C++17)(C++17)
beta function
(function)
(complete) elliptic integral of the first kind
(function)
(complete) elliptic integral of the second kind
(function)
(complete) elliptic integral of the third kind
(function)
regular modified cylindrical Bessel functions
(function)
cylindrical Bessel functions (of the first kind)
(function)
irregular modified cylindrical Bessel functions
(function)
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)
Riemann zeta function
(function)
spherical Bessel functions (of the first kind)
(function)
spherical associated Legendre functions
(function)
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]