20#ifndef CORE_UTILS_FOR_EACH_PAIR_HPP
21#define CORE_UTILS_FOR_EACH_PAIR_HPP
34template <
typename ForwardIterator,
typename BinaryOp>
46template <
typename ForwardRange,
typename BinaryOp>
61template <
typename ForwardIterator,
typename BinaryOp>
75template <
typename ForwardRange,
typename BinaryOp>
81 std::forward<BinaryOp>(
op));
92template <
typename ForwardIterator,
typename BinaryOp,
typename BinaryCmp>
108template <
typename ForwardRange,
typename BinaryOp,
typename BinaryCmp>
114 std::forward<BinaryOp>(
op),
115 std::forward<BinaryCmp>(
cmp));
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
void for_each_pair(ForwardIterator first, ForwardIterator last, BinaryOp op)
Execute op for each pair of elements in [first, last) once.
void for_each_cartesian_pair(ForwardIterator first1, ForwardIterator last1, ForwardIterator first2, ForwardIterator last2, BinaryOp op)
Execute op for each pair of elements between [first1, last1) and [first2, last2).
void for_each_cartesian_pair_if(ForwardIterator first1, ForwardIterator last1, ForwardIterator first2, ForwardIterator last2, BinaryOp op, BinaryCmp cmp)
Execute op for each pair of elements between [first1, last1) and [first2, last2) if a condition is sa...