alpaka
Abstraction Library for Parallel Kernel Acceleration
NdLoop.hpp File Reference
#include "alpaka/core/Common.hpp"
#include "alpaka/dim/Traits.hpp"
#include "alpaka/vec/Vec.hpp"
#include <utility>

Go to the source code of this file.

Namespaces

 alpaka
 The alpaka accelerator library.
 
 alpaka::meta
 
 alpaka::meta::detail
 

Functions

template<typename TExtentVec , typename TFnObj , std::size_t... Tdims>
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto alpaka::meta::ndLoop ([[maybe_unused]] std::index_sequence< Tdims... > indexSequence, 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. More...
 
template<std::size_t Tdim0, std::size_t... Tdims, typename TIndex , typename TExtentVec , typename TFnObj >
ALPAKA_NO_HOST_ACC_WARNING constexpr ALPAKA_FN_HOST_ACC 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 >
ALPAKA_NO_HOST_ACC_WARNING constexpr ALPAKA_FN_HOST_ACC void alpaka::meta::detail::ndLoopImpl (std::index_sequence<>, TIndex &idx, TExtentVec const &, TFnObj const &f)
 
template<typename TExtentVec , typename TFnObj >
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto alpaka::meta::ndLoopIncIdx (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. More...