Numerics library
The C++ numerics library includes common mathematical functions and types, as well as optimized numeric arrays and support for random number generation.
Contents |
[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
Defined in header
<complex> | |
a complex number type (class template) |
[edit] Numeric arrays
Defined in header
<valarray> | |
numeric arrays, array masks and array slices (class template) |
[edit] Numeric algorithms
The header <numeric> provides numeric algorithms below:
[edit] Factor operations (since C++17)
Defined in header
<numeric> | |
(C++17) |
computes the greatest common divisor of two integers (function template) |
(C++17) |
computes the least common multiple of two integers (function template) |
[edit] Interpolation operations (C++20)
Defined in header
<numeric> | |
(C++20) |
midpoint between two numbers or pointers (function template) |
Defined in header
<cmath> | |
(C++20) |
linear interpolation function (function) |
[edit] Saturation arithmetic (since C++26)
Defined in header
<numeric> | |
(C++26) |
saturating addition operation on two integers (function template) |
(C++26) |
saturating subtraction operation on two integers (function template) |
(C++26) |
saturating multiplication operation on two integers (function template) |
(C++26) |
saturating division operation on two integers (function template) |
(C++26) |
returns an integer value clamped to the range of another integer type (function template) |
[edit] Numeric operations
Defined in header
<numeric> | |
(C++11) |
fills a range with successive increments of the starting value (function template) |
(C++23) |
fills a range with successive increments of the starting value (algorithm function object) |
sums up or folds a range of elements (function template) | |
(C++17) |
similar to std::accumulate, except out of order (function template) |