iki/index.php?title=Template:cpp/numeric/dsc_lerp&action=edit)  
  
###  [ [ edit ](/mwiki/index.php?title=cpp/numeric&action=edit&section=11
"Edit section: Saturation arithmetic \(since C++26\)") ]  Saturation
arithmetic  (since C++26)

Defined in header ` [ <numeric> ](/w/cpp/header/numeric "cpp/header/numeric")
`  
---  
[ add_sat  ](/w/cpp/numeric/add_sat "cpp/numeric/add sat") (C++26)  |  saturating addition operation on two integers   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/numeric/dsc_add_sat&action=edit)  
[ sub_sat  ](/w/cpp/numeric/sub_sat "cpp/numeric/sub sat") (C++26)  |  saturating subtraction operation on two integers   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/numeric/dsc_sub_sat&action=edit)  
[ mul_sat  ](/w/cpp/numeric/mul_sat "cpp/numeric/mul sat") (C++26)  |  saturating multiplication operation on two integers   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/numeric/dsc_mul_sat&action=edit)  
[ div_sat  ](/w/cpp/numeric/div_sat "cpp/numeric/div sat") (C++26)  |  saturating division operation on two integers   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/numeric/dsc_div_sat&action=edit)  
[ saturate_cast  ](/w/cpp/numeric/saturate_cast "cpp/numeric/saturate cast") (C++26)  |  returns an integer value clamped to the range of a another integer type   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/numeric/dsc_saturate_cast&action=edit)  
  
###  [ [ edit ](/mwiki/index.php?title=cpp/numeric&action=edit&section=12
"Edit section: Numeric operations") ]  Numeric operations

Defined in header ` [ <numeric> ](/w/cpp/header/numeric "cpp/header/numeric")
`  
---  
[ iota  ](/w/cpp/algorithm/iota "cpp/algorithm/iota") (C++11)  |  fills a range with successive increments of the starting value   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_iota&action=edit)  
[ ranges::iota  ](/w/cpp/algorithm/ranges/iota "cpp/algorithm/ranges/iota") (C++23)  |  fills a range with successive increments of the starting value   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_iota&action=edit)  
[ accumulate  ](/w/cpp/algorithm/accumulate "cpp/algorithm/accumulate") |  sums up or folds a range of elements   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_accumulate&action=edit)  
[ reduce  ](/w/cpp/algorithm/reduce "cpp/algorithm/reduce") (C++17)  |  similar to  [ std::accumulate ](/w/cpp/algorithm/accumulate "cpp/algorithm/accumulate") , except out of order   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_reduce&action=edit)  
[ transform_reduce  ](/w/cpp/algorithm/transform_reduce "cpp/algorithm/transform reduce") (C++17)  |  applies an invocable, then reduces out of order   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_transform_reduce&action=edit)  
[ inner_product  ](/w/cpp/algorithm/inner_product "cpp/algorithm/inner product") |  computes the inner product of two ranges of elements   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_inner_product&action=edit)  
[ adjacent_difference  ](/w/cpp/algorithm/adjacent_difference "cpp/algorithm/adjacent difference") |  computes the differences between adjacent elements in a range   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_adjacent_difference&action=edit)  
[ partial_sum  ](/w/cpp/algorithm/partial_sum "cpp/algorithm/partial sum") |  computes the partial sum of a range of elements   
(function template)