Numerics library
The C++ numerics library includes common mathematical functions and types, as well as optimized numeric arrays and support for random number generation.
[edit] Mathematical functions and types
[edit] Common mathematical functions
The header <cmath> provides standard C library mathematical functions such as std::fabs , std::sqrt , and std::sin .
[edit] Mathematical special functions (since C++17)
The header <cmath> also provides several mathematical special functions such as std::beta , std::hermite , and std::cyl_bessel_i .
[edit] Mathematical constants (since C++20)
The header <numbers> provides several mathematical constants, such as std::numbers::pi or std::numbers::sqrt2
[edit] Basic linear algebra algorithms (since C++26)
The header <linalg> provides basic linear algebra algorithms which are based on BLAS.
[edit] Data-parallel types (since C++26)
The header <simd> provides portable types for explicitly stating data-parallelism and structuring data for more efficient SIMD access.
[edit] Complex number arithmetic
<complex>
[edit] Numeric arrays
<valarray>
[edit] Numeric algorithms
The header <numeric> provides numeric algorithms below:
[edit] Factor operations (since C++17)
<numeric>
[edit] Interpolation operations (C++20)
<numeric>
<cmath>
[edit] Saturation arithmetic (since C++26)
<numeric>
(function template) [edit]
[edit] Numeric operations
<numeric>
(algorithm function object)[edit]
(function template) [edit]
(function template) [edit]
[edit] Miscellaneous
[edit] Pseudo-random number generation
The header <random> defines pseudo-random number generators and numerical distributions. The header <cstdlib> also includes C-style random number generation via std::srand and std::rand .
[edit] Floating-point environment (since C++11)
The header <cfenv> defines flags and functions related to exceptional floating-point state, such as overflow and division by zero.
[edit] Bit manipulation (since C++20)
The header <bit> provides several function templates to access, manipulate, and process individual bits and bit sequences. The byte ordering (endianness) of scalar types can be inspected via std::endian facility.
[edit] Checked integer arithmetic (since C++26)
The C compatibility header <stdckdint.h> provides several function templates for checked integer arithmetic.
<stdckdint.h>