19 template<
typename TDim,
typename TIdx>
34 template<
typename TDim,
typename TIdx>
35 struct DimType<gb::IdxGbLinear<TDim, TIdx>>
41 template<
typename TDim,
typename TIdx>
42 struct GetIdx<gb::IdxGbLinear<TDim, TIdx>, origin::Grid, unit::Blocks>
45 template<
typename TWorkDiv>
55 template<
typename TIdx>
56 struct GetIdx<gb::IdxGbLinear<DimInt<1u>, TIdx>, origin::Grid, unit::Blocks>
59 template<
typename TWorkDiv>
62 return idx.m_gridBlockIdx;
67 template<
typename TDim,
typename TIdx>
68 struct IdxType<gb::IdxGbLinear<TDim, TIdx>>
General ND index provider based on a linear index.
TIdx const m_gridBlockIdx
IdxGbLinear(TIdx const &teamOffset=static_cast< TIdx >(0u))
The alpaka accelerator library.
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto getWorkDiv(TWorkDiv const &workDiv) -> Vec< Dim< TWorkDiv >, Idx< TWorkDiv > >
Get the extent requested.
ALPAKA_NO_HOST_ACC_WARNING ALPAKA_FN_HOST_ACC auto mapIdx(Vec< DimInt< TDimIn >, TElem > const &in, Vec< DimInt< TDimExtents >, TElem > const &extent) -> Vec< DimInt< TDimOut >, TElem >
Maps an N-dimensional index to an N-dimensional position. At least one dimension must always be 1 or ...
std::integral_constant< std::size_t, N > DimInt
Tag used in class inheritance hierarchies that describes that a specific interface (TInterface) is im...
The dimension getter type trait.
static auto getIdx(gb::IdxGbLinear< DimInt< 1u >, TIdx > const &idx, TWorkDiv const &) -> Vec< DimInt< 1u >, TIdx >
static auto getIdx(gb::IdxGbLinear< TDim, TIdx > const &idx, TWorkDiv const &workDiv) -> Vec< TDim, TIdx >