Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/numeric"

From cppreference.com
< cpp
(Miscellanous: -)
m (Numeric operations: +ranges::iota++)
Line 57: Line 57:
 
{{dsc header | numeric}}
 
{{dsc header | numeric}}
 
{{dsc inc | cpp/algorithm/dsc iota}}
 
{{dsc inc | cpp/algorithm/dsc iota}}
 +
{{dsc inc | cpp/algorithm/ranges/dsc iota}}
 
{{dsc inc | cpp/algorithm/dsc accumulate}}
 
{{dsc inc | cpp/algorithm/dsc accumulate}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc accumulate}}-->
 
{{dsc inc | cpp/algorithm/dsc reduce}}
 
{{dsc inc | cpp/algorithm/dsc reduce}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc reduce}}-->
 
{{dsc inc | cpp/algorithm/dsc transform_reduce}}
 
{{dsc inc | cpp/algorithm/dsc transform_reduce}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc transform_reduce}}-->
 
{{dsc inc | cpp/algorithm/dsc inner_product}}
 
{{dsc inc | cpp/algorithm/dsc inner_product}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc inner_product}}-->
 
{{dsc inc | cpp/algorithm/dsc adjacent_difference}}
 
{{dsc inc | cpp/algorithm/dsc adjacent_difference}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc adjacent_difference}}-->
 
{{dsc inc | cpp/algorithm/dsc partial_sum}}
 
{{dsc inc | cpp/algorithm/dsc partial_sum}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc partial_sum}}-->
 
{{dsc inc | cpp/algorithm/dsc inclusive_scan}}
 
{{dsc inc | cpp/algorithm/dsc inclusive_scan}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc inclusive_scan}}-->
 
{{dsc inc | cpp/algorithm/dsc exclusive_scan}}
 
{{dsc inc | cpp/algorithm/dsc exclusive_scan}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc exclusive_scan}}-->
 
{{dsc inc | cpp/algorithm/dsc transform_inclusive_scan}}
 
{{dsc inc | cpp/algorithm/dsc transform_inclusive_scan}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc transform_inclusive_scan}}-->
 
{{dsc inc | cpp/algorithm/dsc transform_exclusive_scan}}
 
{{dsc inc | cpp/algorithm/dsc transform_exclusive_scan}}
 +
<!--{{dsc inc | cpp/algorithm/ranges/dsc transform_exclusive_scan}}-->
 
{{dsc end}}
 
{{dsc end}}
  

Revision as of 11:01, 13 March 2022

 
 
 

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

Contents

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.

Mathematical constants (since C++20)

The header <numbers> provides several mathematical constants, such as std::numbers::pi or std::numbers::sqrt2

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)
computes the greatest common divisor of two integers
(function template) [edit]
(C++17)
computes the least common multiple of two integers
(function template) [edit]

Interpolation operations

Defined in header <numeric>
(C++20)
midpoint between two numbers or pointers
(function template) [edit]
Defined in header <cmath>
(C++20)
linear interpolation function
(function) [edit]

Numeric operations

Defined in header <numeric>
(C++11)
fills a range with successive increments of the starting value
(function template) [edit]
fills a range with successive increments of the starting value
(niebloid)[edit]
sums up or folds a range of elements
(function template) [edit]
(C++17)
similar to std::accumulate, except out of order
(function template) [edit]
applies an invocable, then reduces out of order
(function template) [edit]
computes the inner product of two ranges of elements
(function template) [edit]
computes the differences between adjacent elements in a range
(function template) [edit]
computes the partial sum of a range of elements
(function template) [edit]
similar to std::partial_sum, includes the ith input element in the ith sum
(function template) [edit]
similar to std::partial_sum, excludes the ith input element from the ith sum
(function template) [edit]
applies an invocable, then calculates inclusive scan
(function template) [edit]
applies an invocable, then calculates exclusive scan
(function template) [edit]

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.

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
(C++20)
reinterpret the object representation of one type as that of another
(function template) [edit]
(C++23)
reverses the bytes in the given integer value
(function template) [edit]
checks if a number is an integral power of 2
(function template) [edit]
(C++20)
finds the smallest integral power of two not less than the given value
(function template) [edit]
(C++20)
finds the largest integral power of two not greater than the given value
(function template) [edit]
(C++20)
finds the smallest number of bits needed to represent the given value
(function template) [edit]
(C++20)
computes the result of bitwise left-rotation
(function template) [edit]
(C++20)
computes the result of bitwise right-rotation
(function template) [edit]
counts the number of consecutive 0 bits, starting from the most significant bit
(function template) [edit]
counts the number of consecutive 1 bits, starting from the most significant bit
(function template) [edit]
counts the number of consecutive 0 bits, starting from the least significant bit
(function template) [edit]
counts the number of consecutive 1 bits, starting from the least significant bit
(function template) [edit]
(C++20)
counts the number of 1 bits in an unsigned integer
(function template) [edit]
(C++20)
indicates the endianness of scalar types
(enum) [edit]

See also

C documentation for Numerics