DASH
0.3.0
|
Iterator on Partitioned Global Address Space. More...
#include <GlobIter.h>
Public Types | |
using | iterator_category = std::random_access_iterator_tag |
Iterator Traits. More... | |
using | value_type = ElementType |
using | difference_type = typename PatternType::index_type |
using | size_type = typename PatternType::size_type |
using | pointer = PointerType |
using | reference = ReferenceType |
typedef ReferenceType::const_type | const_reference |
typedef PointerType::const_type | const_pointer |
typedef pointer::local_type | local_type |
typedef pointer::const_local_type | const_local_type |
typedef PatternType | pattern_type |
typedef std::make_signed< typename PatternType::index_type >::type | index_type |
typedef std::integral_constant< bool, false > | has_view |
Public Member Functions | |
DASH_CONSTEXPR | GlobIter (GlobMemType *gmem, PatternType const &pat, index_type position=0) DASH_NOEXCEPT |
Constructor, creates a global iterator on global memory following the element order specified by the given pattern. More... | |
template<class ElementType_ , class PointerType_ , class ReferenceType_ , typename = typename std::enable_if< std::is_assignable< typename dash::remove_atomic<ElementType_>::type, typename dash::remove_atomic<value_type>::type>::value> ::type> | |
DASH_CONSTEXPR | GlobIter (const GlobIter< ElementType_, PatternType, GlobMemType, PointerType_, ReferenceType_ > &other) DASH_NOEXCEPT |
DASH_CONSTEXPR | operator const_pointer () const noexcept |
<fuchsto> TODO: Conversion from iterator to pointer looks dubios More... | |
DASH_CONSTEXPR | operator pointer () DASH_NOEXCEPT |
<fuchsto> TODO: Conversion from iterator to pointer looks dubios More... | |
DASH_CONSTEXPR dart_gptr_t | dart_gptr () const DASH_NOEXCEPT |
Explicit conversion to dart_gptr_t . More... | |
DASH_CONSTEXPR reference | operator* () noexcept |
Dereference operator. More... | |
DASH_CONSTEXPR const_reference | operator* () const noexcept |
Dereference operator. More... | |
DASH_CONSTEXPR reference | operator[] (index_type g_index) noexcept |
Subscript operator, returns global reference to element at given global index. More... | |
DASH_CONSTEXPR const_reference | operator[] (index_type g_index) const noexcept |
Subscript operator, returns global reference to element at given global index. More... | |
DASH_CONSTEXPR bool | is_local () const noexcept |
Checks whether the element referenced by this global iterator is in the calling unit's local memory. More... | |
DASH_CONSTEXPR local_type | local () const |
Convert global iterator to native pointer. More... | |
DASH_CONSTEXPR auto | lpos () const |
Unit and local offset at the iterator's position. More... | |
DASH_CONSTEXPR const self_t & | global () const DASH_NOEXCEPT |
Map iterator to global index domain. More... | |
DASH_CONSTEXPR index_type | pos () const DASH_NOEXCEPT |
Position of the iterator in global index space. More... | |
DASH_CONSTEXPR index_type | gpos () const DASH_NOEXCEPT |
Position of the iterator in global index range. More... | |
DASH_CONSTEXPR const GlobMemType & | globmem () const DASH_NOEXCEPT |
The instance of GlobStaticMem used by this iterator to resolve addresses in global memory. More... | |
GlobMemType & | globmem () |
The instance of GlobStaticMem used by this iterator to resolve addresses in global memory. More... | |
DASH_CONSTEXPR self_t & | operator++ () DASH_NOEXCEPT |
Prefix increment operator. More... | |
DASH_CONSTEXPR self_t | operator++ (int) DASH_NOEXCEPT |
Postfix increment operator. More... | |
DASH_CONSTEXPR self_t & | operator-- () DASH_NOEXCEPT |
Prefix decrement operator. More... | |
DASH_CONSTEXPR self_t | operator-- (int) DASH_NOEXCEPT |
Postfix decrement operator. More... | |
DASH_CONSTEXPR self_t & | operator+= (index_type n) DASH_NOEXCEPT |
DASH_CONSTEXPR self_t & | operator-= (index_type n) DASH_NOEXCEPT |
DASH_CONSTEXPR self_t | operator+ (index_type n) const DASH_NOEXCEPT |
DASH_CONSTEXPR self_t | operator- (index_type n) const DASH_NOEXCEPT |
template<class GlobIterT > | |
DASH_CONSTEXPR bool | operator< (const GlobIterT &other) const DASH_NOEXCEPT |
template<class GlobIterT > | |
DASH_CONSTEXPR bool | operator<= (const GlobIterT &other) const DASH_NOEXCEPT |
template<class GlobIterT > | |
DASH_CONSTEXPR bool | operator> (const GlobIterT &other) const DASH_NOEXCEPT |
template<class GlobIterT > | |
DASH_CONSTEXPR bool | operator>= (const GlobIterT &other) const DASH_NOEXCEPT |
template<class GlobIterT > | |
DASH_CONSTEXPR bool | operator== (const GlobIterT &other) const DASH_NOEXCEPT |
template<class GlobIterT > | |
DASH_CONSTEXPR bool | operator!= (const GlobIterT &other) const DASH_NOEXCEPT |
DASH_CONSTEXPR const PatternType & | pattern () const DASH_NOEXCEPT |
DASH_CONSTEXPR dash::Team & | team () const DASH_NOEXCEPT |
Static Public Member Functions | |
static constexpr dim_t | ndim () |
The number of dimensions of the iterator's underlying pattern. More... | |
Friends | |
template<typename T_ , class P_ , class GM_ , class Ptr_ , class Ref_ > | |
std::ostream & | operator<< (std::ostream &os, const GlobIter< T_, P_, GM_, Ptr_, Ref_ > &it) |
Iterator on Partitioned Global Address Space.
Definition at line 45 of file GlobIter.h.
using dash::GlobIter< ElementType, PatternType, GlobMemType, PointerType, ReferenceType >::iterator_category = std::random_access_iterator_tag |
Iterator Traits.
Definition at line 48 of file GlobIter.h.
|
inline |
Constructor, creates a global iterator on global memory following the element order specified by the given pattern.
Definition at line 119 of file GlobIter.h.
|
inline |
Explicit conversion to dart_gptr_t
.
Definition at line 193 of file GlobIter.h.
Referenced by dash::GlobIter< value_type, Pattern_t, GlobMem_t >::operator const_pointer(), dash::GlobIter< value_type, Pattern_t, GlobMem_t >::operator pointer(), and dash::GlobIter< value_type, Pattern_t, GlobMem_t >::operator*().
|
inline |
Map iterator to global index domain.
Definition at line 328 of file GlobIter.h.
|
inline |
The instance of GlobStaticMem
used by this iterator to resolve addresses in global memory.
Definition at line 353 of file GlobIter.h.
|
inline |
The instance of GlobStaticMem
used by this iterator to resolve addresses in global memory.
Definition at line 362 of file GlobIter.h.
|
inline |
Position of the iterator in global index range.
Definition at line 344 of file GlobIter.h.
|
inlinenoexcept |
Checks whether the element referenced by this global iterator is in the calling unit's local memory.
Definition at line 271 of file GlobIter.h.
|
inline |
Convert global iterator to native pointer.
Definition at line 279 of file GlobIter.h.
Referenced by dash::equal().
|
inline |
Unit and local offset at the iterator's position.
Definition at line 297 of file GlobIter.h.
Referenced by dash::GlobIter< value_type, Pattern_t, GlobMem_t >::is_local(), and dash::GlobIter< value_type, Pattern_t, GlobMem_t >::local().
|
inlinestatic |
The number of dimensions of the iterator's underlying pattern.
Definition at line 158 of file GlobIter.h.
|
inlineexplicitnoexcept |
<fuchsto> TODO: Conversion from iterator to pointer looks dubios
Type conversion operator to GlobPtr
.
Definition at line 170 of file GlobIter.h.
|
inlineexplicit |
<fuchsto> TODO: Conversion from iterator to pointer looks dubios
Type conversion operator to GlobPtr
.
Definition at line 182 of file GlobIter.h.
|
inlinenoexcept |
Dereference operator.
Definition at line 226 of file GlobIter.h.
|
inlinenoexcept |
Dereference operator.
Definition at line 236 of file GlobIter.h.
|
inline |
Prefix increment operator.
Definition at line 370 of file GlobIter.h.
|
inline |
Postfix increment operator.
Definition at line 379 of file GlobIter.h.
|
inline |
Prefix decrement operator.
Definition at line 389 of file GlobIter.h.
|
inline |
Postfix decrement operator.
Definition at line 398 of file GlobIter.h.
|
inlinenoexcept |
Subscript operator, returns global reference to element at given global index.
g_index | The global position of the element |
Definition at line 245 of file GlobIter.h.
|
inlinenoexcept |
Subscript operator, returns global reference to element at given global index.
g_index | The global position of the element |
Definition at line 258 of file GlobIter.h.
|
inline |
Position of the iterator in global index space.
Definition at line 336 of file GlobIter.h.
Referenced by dash::find(), dash::find_if(), dash::GlobIter< value_type, Pattern_t, GlobMem_t >::operator--(), and dash::Array< signal_t >::operator=().