alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka::IdxRange< T_End, T_Begin, T_Stride > Struct Template Reference

#include <IdxRange.hpp>

Public Types

using IdxType = typename T_End::type
using IdxVecType = typename T_End::UniVec
using type = typename T_Begin::type

Public Member Functions

constexpr IdxRange (T_Begin const &begin, T_End const &end)
constexpr IdxRange (T_Begin const &begin, T_End const &end, T_Stride const &stride)
constexpr IdxRange (T_End const &extent)
constexpr auto begin () const
 Begin iterator to iterate all positions in the range.
constexpr auto distance () const
constexpr auto end () const
template<concepts::TypeOrVector< typename T_End::type > T_OpType>
ALPAKA_FN_HOST_ACC constexpr auto operator% (T_OpType const &rhs) const
template<concepts::TypeOrVector< typename T_End::type > T_OpType>
ALPAKA_FN_HOST_ACC constexpr auto operator<< (T_OpType const &rhs) const
template<concepts::TypeOrVector< typename T_End::type > T_OpType>
ALPAKA_FN_HOST_ACC constexpr auto operator>> (T_OpType const &rhs) const
std::string toString (std::string const separator=",", std::string const enclosings="{}") const

Static Public Member Functions

static consteval uint32_t dim ()

Public Attributes

T_Begin m_begin
T_End m_end
T_Stride m_stride

Detailed Description

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
struct alpaka::IdxRange< T_End, T_Begin, T_Stride >

Definition at line 22 of file IdxRange.hpp.

Member Typedef Documentation

◆ IdxType

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
using alpaka::IdxRange< T_End, T_Begin, T_Stride >::IdxType = typename T_End::type

Definition at line 24 of file IdxRange.hpp.

◆ IdxVecType

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
using alpaka::IdxRange< T_End, T_Begin, T_Stride >::IdxVecType = typename T_End::UniVec

Definition at line 25 of file IdxRange.hpp.

◆ type

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
using alpaka::IdxRange< T_End, T_Begin, T_Stride >::type = typename T_Begin::type

Definition at line 132 of file IdxRange.hpp.

Constructor & Destructor Documentation

◆ IdxRange() [1/3]

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
alpaka::IdxRange< T_End, T_Begin, T_Stride >::IdxRange ( T_Begin const & begin,
T_End const & end,
T_Stride const & stride )
inlineconstexpr

Definition at line 27 of file IdxRange.hpp.

◆ IdxRange() [2/3]

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
alpaka::IdxRange< T_End, T_Begin, T_Stride >::IdxRange ( T_Begin const & begin,
T_End const & end )
inlineconstexpr

Definition at line 34 of file IdxRange.hpp.

◆ IdxRange() [3/3]

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
alpaka::IdxRange< T_End, T_Begin, T_Stride >::IdxRange ( T_End const & extent)
inlineconstexpr

Definition at line 41 of file IdxRange.hpp.

Member Function Documentation

◆ begin()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
auto alpaka::IdxRange< T_End, T_Begin, T_Stride >::begin ( ) const
inlinenodiscardconstexpr

Begin iterator to iterate all positions in the range.

It first iterates the fastest index (the one on the far right -> x-dimension) and then moves sequentially to the slowest index (the one on the far left) until it reaches the end.

If you want to iterate the index in parallel with many threads, use the function alpaka::onAcc::makeIdxMap().

Returns
Begin iterator

Definition at line 88 of file IdxRange.hpp.

◆ dim()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
consteval uint32_t alpaka::IdxRange< T_End, T_Begin, T_Stride >::dim ( )
inlinestaticconsteval

Definition at line 45 of file IdxRange.hpp.

◆ distance()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
auto alpaka::IdxRange< T_End, T_Begin, T_Stride >::distance ( ) const
inlineconstexpr

Definition at line 74 of file IdxRange.hpp.

◆ end()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
auto alpaka::IdxRange< T_End, T_Begin, T_Stride >::end ( ) const
inlinenodiscardconstexpr

Definition at line 98 of file IdxRange.hpp.

◆ operator%()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
template<concepts::TypeOrVector< typename T_End::type > T_OpType>
ALPAKA_FN_HOST_ACC constexpr auto alpaka::IdxRange< T_End, T_Begin, T_Stride >::operator% ( T_OpType const & rhs) const
inlineconstexpr

Definition at line 51 of file IdxRange.hpp.

◆ operator<<()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
template<concepts::TypeOrVector< typename T_End::type > T_OpType>
ALPAKA_FN_HOST_ACC constexpr auto alpaka::IdxRange< T_End, T_Begin, T_Stride >::operator<< ( T_OpType const & rhs) const
inlineconstexpr

Definition at line 66 of file IdxRange.hpp.

◆ operator>>()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
template<concepts::TypeOrVector< typename T_End::type > T_OpType>
ALPAKA_FN_HOST_ACC constexpr auto alpaka::IdxRange< T_End, T_Begin, T_Stride >::operator>> ( T_OpType const & rhs) const
inlineconstexpr

Definition at line 57 of file IdxRange.hpp.

◆ toString()

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
std::string alpaka::IdxRange< T_End, T_Begin, T_Stride >::toString ( std::string const separator = ",",
std::string const enclosings = "{}" ) const
inline

Definition at line 108 of file IdxRange.hpp.

Member Data Documentation

◆ m_begin

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
T_Begin alpaka::IdxRange< T_End, T_Begin, T_Stride >::m_begin

Definition at line 128 of file IdxRange.hpp.

◆ m_end

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
T_End alpaka::IdxRange< T_End, T_Begin, T_Stride >::m_end

Definition at line 129 of file IdxRange.hpp.

◆ m_stride

template<concepts::VectorOrScalar T_End, concepts::Vector T_Begin = typename T_End::UniVec, concepts::Vector T_Stride = typename T_End::UniVec>
T_Stride alpaka::IdxRange< T_End, T_Begin, T_Stride >::m_stride

Definition at line 130 of file IdxRange.hpp.


The documentation for this struct was generated from the following file: