Numeric utilities.
|
constexpr accumulate_fn | ranges::accumulate {} |
|
constexpr adjacent_difference_fn | ranges::adjacent_difference {} |
|
template<typename I , typename O , typename BOp = minus, typename P = identity> |
concept | ranges::differenceable |
|
template<typename I , typename O , typename BOp , typename P > |
concept | ranges::differenceable__concept_ = invocable<P&, iter_value_t<I>> && copy_constructible<uncvref_t<invoke_result_t<P&, iter_value_t<I>>>> && movable<uncvref_t<invoke_result_t<P&, iter_value_t<I>>>> && output_iterator<O, invoke_result_t<P&, iter_value_t<I>>> && invocable< BOp&, invoke_result_t< P&, iter_value_t<I>>, invoke_result_t<P&, iter_value_t<I>>> && output_iterator< O, invoke_result_t< BOp&, invoke_result_t<P&, iter_value_t<I>>, invoke_result_t<P&, iter_value_t<I>>>> |
|
template<typename I , typename BOp > |
concept | ranges::indirect_semigroup |
|
template<typename I , typename BOp > |
concept | ranges::indirect_semigroup__concept_ = copyable<iter_value_t<I>> && indirectly_regular_binary_invocable_< composed<coerce<iter_value_t<I>>, BOp>, iter_value_t<I>*, I> |
|
constexpr inner_product_fn | ranges::inner_product {} |
|
template<typename I1 , typename I2 , typename T , typename BOp1 = plus, typename BOp2 = multiplies, typename P1 = identity, typename P2 = identity> |
concept | ranges::inner_product_constraints |
|
template<typename I1 , typename I2 , typename T , typename BOp1 , typename BOp2 , typename P1 , typename P2 > |
concept | ranges::inner_product_constraints__concept_ = invocable<P1&, iter_value_t<I1>> && invocable<P2&, iter_value_t<I2>> && invocable< BOp2&, invoke_result_t<P1&, iter_value_t<I1>>, invoke_result_t<P2&, iter_value_t<I2>>> && invocable< BOp1&, T, invoke_result_t< BOp2&, invoke_result_t<P1&, iter_value_t<I1>>, invoke_result_t<P2&, iter_value_t<I2>>>> && assignable_from< T&, invoke_result_t< BOp1&, T, invoke_result_t< BOp2&, invoke_result_t<P1&, iter_value_t<I1>>, invoke_result_t<P2&, iter_value_t<I2>>>>> |
|
constexpr iota_fn | ranges::iota {} |
|
constexpr partial_sum_fn | ranges::partial_sum {} |
|
template<typename I , typename O , typename BOp = plus, typename P = identity> |
concept | ranges::partial_sum_constraints |
|
template<typename I , typename O , typename BOp , typename P > |
concept | ranges::partial_sum_constraints__concept_ = indirect_semigroup< projected<projected<I, detail::as_value_type_t<I>>, P>, BOp> && output_iterator< O, iter_value_t< projected<projected<I, detail::as_value_type_t<I>>, P>> const &> |
|
template<typename Gen > |
concept | ranges::uniform_random_bit_generator |
|
template<typename Gen > |
concept | ranges::uniform_random_bit_generator__concept_ = unsigned_integral<invoke_result_t<Gen &>> && same_as<invoke_result_t<Gen &>, decltype(Gen::min())> && same_as<invoke_result_t<Gen &>, decltype(Gen::max())> |
|
template<typename Gen > |
concept | ranges::uniform_random_bit_generator__requires_ = CPP_REQUIRES_requires `() ( Gen::min(), Gen::max() ) |
|