19 template<
typename TDim,
typename TIdx>
34 template<
typename TDim,
typename TIdx>
35 struct DimType<bt::IdxBtLinear<TDim, TIdx>>
41 template<
typename TDim,
typename TIdx>
42 struct GetIdx<bt::IdxBtLinear<TDim, TIdx>, origin::Block, unit::Threads>
45 template<
typename TWorkDiv>
54 template<
typename TIdx>
55 struct GetIdx<bt::IdxBtLinear<DimInt<1u>, TIdx>, origin::Block, unit::Threads>
58 template<
typename TWorkDiv>
61 return idx.m_blockThreadIdx;
66 template<
typename TDim,
typename TIdx>
67 struct IdxType<bt::IdxBtLinear<TDim, TIdx>>
General ND bt index provider based on a linear index.
IdxBtLinear(TIdx blockThreadIdx)
const TIdx m_blockThreadIdx
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(bt::IdxBtLinear< DimInt< 1u >, TIdx > const &idx, TWorkDiv const &) -> Vec< DimInt< 1u >, TIdx >
static auto getIdx(bt::IdxBtLinear< TDim, TIdx > const &idx, TWorkDiv const &workDiv) -> Vec< TDim, TIdx >