cpp/algorithm/ranges/dsc_next_permutation&action=edit)  
[ prev_permutation  ](/w/cpp/algorithm/prev_permutation "cpp/algorithm/prev permutation") |  generates the next smaller lexicographic permutation of a range of elements   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_prev_permutation&action=edit)  
[ ranges::prev_permutation  ](/w/cpp/algorithm/ranges/prev_permutation "cpp/algorithm/ranges/prev permutation") (C++20)  |  generates the next smaller lexicographic permutation of a range of elements   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_prev_permutation&action=edit)  
[ is_permutation  ](/w/cpp/algorithm/is_permutation "cpp/algorithm/is permutation") (C++11)  |  determines if a sequence is a permutation of another sequence   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_is_permutation&action=edit)  
[ ranges::is_permutation  ](/w/cpp/algorithm/ranges/is_permutation "cpp/algorithm/ranges/is permutation") (C++20)  |  determines if a sequence is a permutation of another sequence   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_is_permutation&action=edit)  
  
###  [ [ edit ](/mwiki/index.php?title=cpp/algorithm&action=edit&section=26
"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)  
[ 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)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_partial_sum&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)  
[ exclusive_scan  ](/w/cpp/algorithm/exclusive_scan "cpp/algorithm/exclusive scan") (C++17)  |  similar to  [ std::partial_sum ](/w/cpp/algorithm/partial_sum "cpp/algorithm/partial sum") , excludes the  i  th  input element from the  i  th  sum   
(function template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/dsc_exclusive_scan&action=edit)  
[ inclusive_scan  ](/w/cpp/algorithm/inclusive_scan "cpp/algorithm/inclusive scan") (C++17)