alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
NdLoop.hpp File Reference
#include "alpaka/Vec.hpp"
#include "alpaka/core/common.hpp"
#include "alpaka/meta/IntegerSequence.hpp"
#include <utility>

Go to the source code of this file.

Namespaces

namespace  alpaka
 main alpaka namespace.
namespace  alpaka::meta
namespace  alpaka::meta::detail

Functions

template<typename TExtentVec, typename TFnObj, std::size_t... Tdims>
auto alpaka::meta::ndLoop (std::index_sequence< Tdims... > indexSequence, TExtentVec &idx, TExtentVec const &extent, TFnObj const &f) -> void
 Loops over an n-dimensional iteration index variable calling f(idx, args...) for each iteration. The loops are nested in the order given by the index_sequence with the first element being the outermost and the last index the innermost loop.
template<std::size_t Tdim0, std::size_t... Tdims, typename TIndex, typename TExtentVec, typename TFnObj>
constexpr void alpaka::meta::detail::ndLoopImpl (std::index_sequence< Tdim0, Tdims... >, TIndex &idx, TExtentVec const &extent, TFnObj const &f)
template<typename TIndex, typename TExtentVec, typename TFnObj>
constexpr void alpaka::meta::detail::ndLoopImpl (std::index_sequence<>, TIndex &idx, TExtentVec const &, TFnObj const &f)
template<typename TExtentVec, typename TFnObj>
auto alpaka::meta::ndLoopIncIdx (TExtentVec &idx, TExtentVec const &extent, TFnObj const &f) -> void
 Loops over an n-dimensional iteration index variable calling f(idx, args...) for each iteration. The loops are nested from index zero outmost to index (dim-1) innermost.
template<typename TExtentVec, typename TFnObj>
auto alpaka::meta::ndLoopIncIdx (TExtentVec const &extent, TFnObj const &f) -> void