# Numerics library

From cppreference.com

The C++ numerics library includes common mathematical functions and types, as well as optimized numeric arrays and support for random number generation.

## Contents |

### Common mathematical functions

The header `cmath`

provides standard C library mathematical functions such as std::fabs, std::sqrt, and std::sin.

### Complex numbers

Defined in header
`<complex>` | |

a complex number type (class template) |

### Numeric arrays

Defined in header
`<valarray>` | |

numeric arrays and array slices (class template) |

### 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) | |

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) |

### 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

The header `fenv`

defines flags and functions related to exceptional floating-point state, such as overflow and division by zero.