/C++

# 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

The header `cmath` also provides several mathematical special functions such as `std::beta`, `std::hermite`, and `std::cyl_bessel_i`.

(since C++17)

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

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

 C documentation for `Numerics`