hpx/parallel/util/loop.hpp

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace parallel
namespace util

Functions

template<typename Iter, typename F, typename Cleanup>
constexpr Iter loop_with_cleanup(Iter it, Iter last, F &&f, Cleanup &&cleanup)
template<typename Iter, typename FwdIter, typename F, typename Cleanup>
constexpr FwdIter loop_with_cleanup(Iter it, Iter last, FwdIter dest, F &&f, Cleanup &&cleanup)
template<typename Iter, typename F, typename Cleanup>
constexpr Iter loop_with_cleanup_n(Iter it, std::size_t count, F &&f, Cleanup &&cleanup)
template<typename Iter, typename FwdIter, typename F, typename Cleanup>
constexpr FwdIter loop_with_cleanup_n(Iter it, std::size_t count, FwdIter dest, F &&f, Cleanup &&cleanup)
template<typename Iter, typename CancelToken, typename F, typename Cleanup>
constexpr Iter loop_with_cleanup_n_with_token(Iter it, std::size_t count, CancelToken &tok, F &&f, Cleanup &&cleanup)
template<typename Iter, typename FwdIter, typename CancelToken, typename F, typename Cleanup>
constexpr FwdIter loop_with_cleanup_n_with_token(Iter it, std::size_t count, FwdIter dest, CancelToken &tok, F &&f, Cleanup &&cleanup)
template<typename Iter, typename T, typename Pred>
constexpr T accumulate_n(Iter it, std::size_t count, T init, Pred &&f)
template<typename T, typename Iter, typename Sent, typename Reduce, typename Conv = util::projection_identity>
constexpr T accumulate(Iter first, Sent last, Reduce &&r, Conv &&conv = Conv())
template<typename T, typename Iter1, typename Sent1, typename Iter2, typename Reduce, typename Conv>
constexpr T accumulate(Iter1 first1, Sent1 last1, Iter2 first2, Reduce &&r, Conv &&conv)

Variables

template<typename ExPolicy>
constexpr loop_step_t<ExPolicy> loop_step = loop_step_t<ExPolicy>{}
template<typename ExPolicy>
constexpr loop_optimization_t<ExPolicy> loop_optimization = loop_optimization_t<ExPolicy>{}
constexpr loop_t loop = loop_t{}
constexpr loop_ind_t loop_ind = loop_ind_t{}
template<typename ExPolicy>
constexpr loop2_t<ExPolicy> loop2 = loop2_t<ExPolicy>{}
template<typename ExPolicy>
constexpr loop_n_t<ExPolicy> loop_n = loop_n_t<ExPolicy>{}
template<typename ExPolicy>
constexpr loop_n_ind_t<ExPolicy> loop_n_ind = loop_n_ind_t<ExPolicy>{}
template<typename ExPolicy>
constexpr loop_idx_n_t<ExPolicy> loop_idx_n = loop_idx_n_t<ExPolicy>{}
template<typename ExPolicy>
struct loop2_t : public hpx::functional::detail::tag_fallback<loop2_t<ExPolicy>>

Friends

template<typename VecOnly, typename Begin1, typename End1, typename Begin2, typename F>
friend constexpr std::pair<Begin1, Begin2> tag_fallback_invoke(hpx::parallel::util::loop2_t<ExPolicy>, VecOnly&&, Begin1 begin1, End1 end1, Begin2 begin2, F &&f)
template<typename ExPolicy>
struct loop_idx_n_t : public hpx::functional::detail::tag_fallback<loop_idx_n_t<ExPolicy>>

Friends

template<typename Iter, typename F>
friend constexpr Iter tag_fallback_invoke(hpx::parallel::util::loop_idx_n_t<ExPolicy>, std::size_t base_idx, Iter it, std::size_t count, F &&f)
template<typename Iter, typename CancelToken, typename F>
friend constexpr Iter tag_fallback_invoke(hpx::parallel::util::loop_idx_n_t<ExPolicy>, std::size_t base_idx, Iter it, std::size_t count, CancelToken &tok, F &&f)
struct loop_ind_t : public hpx::functional::detail::tag_fallback<loop_ind_t>

Friends

template<typename ExPolicy, typename Begin, typename End, typename F>
friend constexpr Begin tag_fallback_invoke(hpx::parallel::util::loop_ind_t, ExPolicy&&, Begin begin, End end, F &&f)
template<typename ExPolicy, typename Begin, typename End, typename CancelToken, typename F>
friend constexpr Begin tag_fallback_invoke(hpx::parallel::util::loop_ind_t, ExPolicy&&, Begin begin, End end, CancelToken &tok, F &&f)
template<typename ExPolicy>
struct loop_n_ind_t : public hpx::functional::detail::tag_fallback<loop_n_ind_t<ExPolicy>>

Friends

template<typename Iter, typename F>
friend constexpr Iter tag_fallback_invoke(hpx::parallel::util::loop_n_ind_t<ExPolicy>, Iter it, std::size_t count, F &&f)
template<typename Iter, typename CancelToken, typename F>
friend constexpr Iter tag_fallback_invoke(hpx::parallel::util::loop_n_ind_t<ExPolicy>, Iter it, std::size_t count, CancelToken &tok, F &&f)
template<typename ExPolicy>
struct loop_n_t : public hpx::functional::detail::tag_fallback<loop_n_t<ExPolicy>>

Friends

template<typename Iter, typename F>
friend constexpr Iter tag_fallback_invoke(hpx::parallel::util::loop_n_t<ExPolicy>, Iter it, std::size_t count, F &&f)
template<typename Iter, typename CancelToken, typename F>
friend constexpr Iter tag_fallback_invoke(hpx::parallel::util::loop_n_t<ExPolicy>, Iter it, std::size_t count, CancelToken &tok, F &&f)
template<typename ExPolicy>
struct loop_optimization_t : public hpx::functional::detail::tag_fallback<loop_optimization_t<ExPolicy>>

Friends

template<typename Iter>
friend constexpr bool tag_fallback_invoke(hpx::parallel::util::loop_optimization_t<ExPolicy>, Iter, Iter)
template<typename ExPolicy>
struct loop_step_t : public hpx::functional::detail::tag_fallback<loop_step_t<ExPolicy>>

Friends

template<typename VecOnly, typename F, typename ...Iters>
hpx::util::invoke_result<F, Iters...>::type tag_fallback_invoke(hpx::parallel::util::loop_step_t<ExPolicy>, VecOnly&&, F &&f, Iters&... its)
struct loop_t : public hpx::functional::detail::tag_fallback<loop_t>

Friends

template<typename ExPolicy, typename Begin, typename End, typename F>
friend constexpr Begin tag_fallback_invoke(hpx::parallel::util::loop_t, ExPolicy&&, Begin begin, End end, F &&f)
template<typename ExPolicy, typename Begin, typename End, typename CancelToken, typename F>
friend constexpr Begin tag_fallback_invoke(hpx::parallel::util::loop_t, ExPolicy&&, Begin begin, End end, CancelToken &tok, F &&f)