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] Common mathematical functions
The header cmath
provides standard C library mathematical functions such as std::fabs, std::sqrt, and std::sin.
Special mathematical functionsThe header 
(since C++17) 
[edit] Complex numbers
Defined in header
<complex> 

a complex number type (class template) 
[edit] Numeric arrays
Defined in header
<valarray> 

numeric arrays and array slices (class template) 
[edit] Generic 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) 
[edit] Pseudorandom number generation
The header random
defines pseudorandom number generators and numerical distributions. The header cstdlib
also includes Cstyle random number generation via std::srand and std::rand.
[edit] Compile time rational arithmetic (since C++11)
The header ratio
provides types and functions for manipulating and storing compiletime ratios.
[edit] Floatingpoint environment(since C++11)
The header cfenv
defines flags and functions related to exceptional floatingpoint state, such as overflow and division by zero.
[edit] See also
C documentation for Numerics
