99 , first_{
std::min(first, extent)}
132 return (first_ == other.first_);
137 return not(*
this == other);
266 class IndependentGroupElementsAlong
271 ALPAKA_FN_ACC inline IndependentGroupElementsAlong(TAcc
const& acc)
279 ALPAKA_FN_ACC inline IndependentGroupElementsAlong(TAcc
const& acc, Idx extent)
287 ALPAKA_FN_ACC inline IndependentGroupElementsAlong(TAcc
const& acc, Idx first, Idx extent)
295 class const_iterator;
296 using iterator = const_iterator;
300 return const_iterator(elements_, stride_, extent_, thread_);
305 return const_iterator(elements_, stride_, extent_, extent_);
313 : elements_{elements}
317 stride_{stride - elements}
319 , index_{
std::min(first, extent)}
334 if(indexElem_ >= elements_)
339 if(index_ >= extent_)
355 return (*(*
this) == *other);
360 return not(*
this == other);
392 return detail::IndependentGroupElementsAlong<TAcc, 0>(acc,
static_cast<Idx>(args)...);
409 return detail::IndependentGroupElementsAlong<TAcc, Dim>(acc,
static_cast<Idx>(args)...);
425 return detail::IndependentGroupElementsAlong<TAcc, alpaka::Dim<TAcc>::value - 1>(
427 static_cast<Idx>(args)...);
437 return detail::IndependentGroupElementsAlong<TAcc, alpaka::Dim<TAcc>::value - 2>(
439 static_cast<Idx>(args)...);
449 return detail::IndependentGroupElementsAlong<TAcc, alpaka::Dim<TAcc>::value - 3>(
451 static_cast<Idx>(args)...);
ALPAKA_FN_ACC const_iterator & operator++()
friend class IndependentGroupElementsAlong
ALPAKA_FN_ACC bool operator!=(const_iterator const &other) const
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 const_iterator operator++(int)
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 Idx operator*() const
ALPAKA_FN_ACC IndependentGroupsAlong(TAcc const &acc)
ALPAKA_FN_ACC const_iterator begin() const
ALPAKA_FN_ACC IndependentGroupsAlong(TAcc const &acc, Idx groups)
ALPAKA_FN_ACC const_iterator end() const
#define ALPAKA_FN_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
ALPAKA_FN_HOST auto end(TView &view) -> Iterator< TView >
ALPAKA_FN_HOST auto begin(TView &view) -> Iterator< TView >
The alpaka accelerator library.
typename trait::IdxType< T >::type Idx
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 independentGroupsAlongZ(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroups(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElements(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlongX(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupsAlongX(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlong(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlongY(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupsAlongY(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupsAlong(TAcc const &acc, TArgs... args)
ALPAKA_FN_ACC auto independentGroupElementsAlongZ(TAcc const &acc, TArgs... args)
typename trait::DimType< T >::type Dim
The dimension type trait alias template to remove the ::type.