Numerics library
The C++ numerics library includes common mathematical functions and types, as well as optimized numeric arrays and support for random number generation.
Mathematical functions and types
Common mathematical functions
The header <cmath> provides standard C library mathematical functions such as std::fabs, std::sqrt, and std::sin.
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.
Complex number arithmetic
|   Defined in header  
<complex>  | |
|    a complex number type   (class template)  | |
Numeric arrays
|   Defined in header  
<valarray>  | |
|    numeric arrays, array masks and array slices   (class template)  | |
Numeric algorithms
The header <numeric> provides numeric algorithms below:
Factor operations
|   Defined in header  
<numeric>  | |
|    (C++17)  | 
   constexpr function template returning the greatest common divisor of two integers (function template)  | 
|    (C++17)  | 
   constexpr function template returning the least common multiple of two integers (function template)  | 
Interpolation operations
|   Defined in header  
<numeric>  | |
|    (C++20)  | 
   midpoint between two numbers or pointers   (function template)  | 
|   Defined in header  
<cmath>  | |
|    (C++20)  | 
   linear interpolation function   (function)  | 
Numeric operations
|   Defined in header  
<numeric>  | |
|    (C++11)  | 
   fills a range with successive increments of the starting value   (function template)  | 
|    sums up a range of elements   (function template)  | |
|    (C++17)  | 
   similar to std::accumulate, except out of order   (function template)  | 
|    (C++17)  | 
   applies a functor, then reduces out of order   (function template)  | 
|    computes the inner product of two ranges of elements   (function template)  | |
|    computes the differences between adjacent elements in a range   (function template)  | |
|    computes the partial sum of a range of elements   (function template)  | |
|    (C++17)  | 
   similar to std::partial_sum, includes the ith input element in the ith sum  (function template)  | 
|    (C++17)  | 
   similar to std::partial_sum, excludes the ith input element from the ith sum  (function template)  | 
|    (C++17)  | 
   applies a functor, then calculates inclusive scan  (function template)  | 
|    (C++17)  | 
   applies a functor, then calculates exclusive scan  (function template)  | 
Miscellanous
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.
Compile time rational arithmetic (since C++11)
The header <ratio> provides types and functions for manipulating and storing compile-time ratios.
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.
Bit manipulation (since C++20)
The header <bit> provides several function templates to access, manipulate, and process individual bits and bit sequences.
|   Defined in header  
<bit>  | |
|   Defined in  namespace  
std  | |
|    reinterpret the object representation of one type as that of another   (function template)  | |
|    checks if a number is an integral power of two   (function template)  | |
|    finds the smallest integral power of two not less than the given value   (function template)  | |
|    finds the largest integral power of two not greater than the given value   (function template)  | |
|    finds the smallest number of bits needed to represent the given value   (function template)  | |