26 #ifndef SCHNEK_GRID_ITERATION_RANGEITERATION_HPP_ 27 #define SCHNEK_GRID_ITERATION_RANGEITERATION_HPP_ 29 #include "../../config.hpp" 30 #include "../array.hpp" 56 static void forEach(
const RangeType& range, Func func);
81 static void forEach(
const RangeType& range, Func func);
89 template<
size_t rank,
size_t dim>
109 template<
size_t rank,
size_t dim>
117 const RangeType& range,
122 constexpr
size_t idim = rank - dim;
123 auto lo = range.getLo()[idim];
124 auto hi = range.getHi()[idim];
125 for (pos[idim]=lo; pos[idim]<=hi; ++pos[idim])
133 template<
size_t rank>
140 auto pos = range.getLo();
150 template<
size_t rank>
170 template<
size_t rank>
178 const RangeType& range,
183 constexpr
size_t dim = rank - 1;
184 auto lo = range.getLo()[dim];
185 auto hi = range.getHi()[dim];
186 for (pos[dim]=lo; pos[dim]<=hi; ++pos[dim])
195 template<
size_t rank>
202 auto pos = range.getLo();
208 #endif // SCHNEK_GRID_ITERATION_RANGEITERATION_HPP_ Definition: range-iteration.hpp:151
Iteration policy that iterates over a domain in C-order.
Definition: range-iteration.hpp:40
static void forEach(const RangeType &range, Func func)
Call a function for each index in the range.
Definition: range-iteration.hpp:138
static void forEach(const RangeType &range, Func func)
Call a function for each index in the range.
Definition: range-iteration.hpp:200
Definition: range-iteration.hpp:90
Iteration policy that iterates over a domain in Fortran-order.
Definition: range-iteration.hpp:65