55 template<concepts::Acc TAcc, std::
size_t Dim>
96 , first_{
std::min(first, extent)}
129 return (first_ == other.first_);
134 return not(*
this == other);
187 template<concepts::Acc TAcc,
typename... TArgs>
201 template<std::size_t
Dim, concepts::Acc TAcc,
typename... TArgs>
215 template<concepts::Acc TAcc,
typename... TArgs>
223 template<concepts::Acc TAcc,
typename... TArgs>
231 template<concepts::Acc TAcc,
typename... TArgs>
248 template<concepts::Acc TAcc, std::
size_t Dim>
279 class const_iterator;
297 : elements_{elements}
301 stride_{stride - elements}
303 , index_{
std::min(first, extent)}
318 if(indexElem_ >= elements_)
323 if(index_ >= extent_)
339 return (*(*
this) == *other);
344 return not(*
this == other);
369 template<concepts::Acc TAcc,
typename... TArgs>
383 template<std::size_t
Dim, concepts::Acc TAcc,
typename... TArgs>
397 template<concepts::Acc TAcc,
typename... TArgs>
404 static_cast<Idx>(args)...);
407 template<concepts::Acc TAcc,
typename... TArgs>
414 static_cast<Idx>(args)...);
417 template<concepts::Acc TAcc,
typename... TArgs>
424 static_cast<Idx>(args)...);
ALPAKA_FN_ACC bool operator!=(const_iterator const &other) const
ALPAKA_FN_ACC const_iterator & operator++()
ALPAKA_FN_ACC bool operator==(const_iterator const &other) const
ALPAKA_FN_ACC const_iterator operator++(int)
ALPAKA_FN_ACC Idx operator*() const
ALPAKA_FN_ACC IndependentGroupElementsAlong(TAcc const &acc)
ALPAKA_FN_ACC IndependentGroupElementsAlong(TAcc const &acc, Idx extent)
ALPAKA_FN_ACC IndependentGroupElementsAlong(TAcc const &acc, Idx first, Idx extent)
ALPAKA_FN_ACC const_iterator begin() const
ALPAKA_FN_ACC const_iterator end() const
ALPAKA_FN_ACC bool operator==(const_iterator const &other) const
ALPAKA_FN_ACC const_iterator & operator++()
ALPAKA_FN_ACC Idx operator*() const
ALPAKA_FN_ACC const_iterator operator++(int)
ALPAKA_FN_ACC bool operator!=(const_iterator const &other) const
ALPAKA_FN_ACC const_iterator begin() const
ALPAKA_FN_ACC const_iterator end() const
ALPAKA_FN_ACC IndependentGroupsAlong(TAcc const &acc)
ALPAKA_FN_ACC IndependentGroupsAlong(TAcc const &acc, Idx groups)
#define ALPAKA_FN_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
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 getIdx(TIdx const &idx, TWorkDiv const &workDiv) -> Vec< Dim< TWorkDiv >, Idx< TIdx > >
Get the indices requested.
ALPAKA_FN_ACC auto independentGroupsAlongY(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlongZ(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlongY(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroups(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlongX(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlong(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElements(TAcc const &acc, TArgs... args)
typename trait::IdxType< T >::type Idx
ALPAKA_FN_ACC auto independentGroupsAlongX(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupsAlong(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupsAlongZ(TAcc const &acc, TArgs... args)
typename trait::DimType< T >::type Dim
The dimension type trait alias template to remove the ::type.