OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BrickIterator< T, Dim > Class Template Reference

#include <BrickIterator.h>

Inheritance diagram for BrickIterator< T, Dim >:
Inheritance graph
[legend]
Collaboration diagram for BrickIterator< T, Dim >:
Collaboration graph
[legend]

Public Types

typedef T PETE_Return_t
 
typedef BrickIterator< T, DimPETE_Expr_t
 

Public Member Functions

 BrickIterator ()
 
 BrickIterator (T *, const NDIndex< Dim > &, const NDIndex< Dim > &)
 
 BrickIterator (T *, const vec< int, Dim > &)
 
BrickIteratoroperator++ ()
 
bool whole () const
 
bool operator== (const BrickIterator< T, Dim > &a) const
 
bool operator!= (const BrickIterator< T, Dim > &a) const
 
T & operator* () const
 
void step (unsigned d)
 
void rewind (unsigned d)
 
T & offset (int i) const
 
T & offset (int i, int j) const
 
T & offset (int i, int j, int k) const
 
T & offset (int *i) const
 
T & unit_offset (int i) const
 
T & unit_offset (int i, int j) const
 
T & unit_offset (int i, int j, int k) const
 
void moveBy (int i)
 
void moveBy (int i, int j)
 
void moveBy (int i, int j, int k)
 
void moveBy (const int *i)
 
int Stride (int i) const
 
MessageputMessage (Message &, bool makecopy=true)
 
MessagegetMessage (Message &)
 
PETE_Expr_t MakeExpression () const
 
- Public Member Functions inherited from BrickCounter< Dim >
 BrickCounter ()
 
 BrickCounter (const NDIndex< Dim > &)
 
BrickCounteroperator++ ()
 
bool done (unsigned d) const
 
void step (unsigned d)
 
void rewind (unsigned d)
 
int size (unsigned d) const
 
int GetOffset (unsigned d) const
 

Protected Member Functions

void op_pp ()
 
- Protected Member Functions inherited from BrickCounter< Dim >
void op_pp ()
 

Protected Attributes

T *__restrict__ Current
 
vec< int, DimStrides
 
bool Whole
 
- Protected Attributes inherited from BrickCounter< Dim >
vec< int, DimCounters
 
vec< int, DimCounts
 

Detailed Description

template<class T, unsigned Dim>
class BrickIterator< T, Dim >

Definition at line 59 of file BrickIterator.h.

Member Typedef Documentation

◆ PETE_Expr_t

template<class T , unsigned Dim>
typedef BrickIterator<T,Dim> BrickIterator< T, Dim >::PETE_Expr_t

Definition at line 175 of file BrickIterator.h.

◆ PETE_Return_t

template<class T , unsigned Dim>
typedef T BrickIterator< T, Dim >::PETE_Return_t

Definition at line 174 of file BrickIterator.h.

Constructor & Destructor Documentation

◆ BrickIterator() [1/3]

template<class T , unsigned Dim>
BrickIterator< T, Dim >::BrickIterator ( )
inline

Definition at line 64 of file BrickIterator.h.

◆ BrickIterator() [2/3]

template<class T , unsigned Dim>
BrickIterator< T, Dim >::BrickIterator ( T *  p,
const NDIndex< Dim > &  counted,
const NDIndex< Dim > &  domalloc 
)

◆ BrickIterator() [3/3]

template<class T , unsigned Dim>
BrickIterator< T, Dim >::BrickIterator ( T *  p,
const vec< int, Dim > &  sizes 
)

Definition at line 90 of file BrickIterator.hpp.

References Dim, and Hypervolume::n.

Member Function Documentation

◆ getMessage()

template<class T , unsigned Dim>
Message & BrickIterator< T, Dim >::getMessage ( Message m)

Definition at line 190 of file BrickIterator.hpp.

References Message::MsgItem::data(), Dim, Message::get(), Message::item(), Hypervolume::n, PInsist, and Attrib::Legacy::Distribution::T.

Referenced by CompressedBrickIterator< T, Dim >::getMessage().

Here is the call graph for this function:

◆ MakeExpression()

template<class T , unsigned Dim>
PETE_Expr_t BrickIterator< T, Dim >::MakeExpression ( ) const
inline

Definition at line 176 of file BrickIterator.h.

◆ moveBy() [1/4]

template<class T , unsigned Dim>
void BrickIterator< T, Dim >::moveBy ( const int *  i)
inline

◆ moveBy() [2/4]

template<class T , unsigned Dim>
void BrickIterator< T, Dim >::moveBy ( int  i)
inline

◆ moveBy() [3/4]

template<class T , unsigned Dim>
void BrickIterator< T, Dim >::moveBy ( int  i,
int  j 
)
inline

◆ moveBy() [4/4]

template<class T , unsigned Dim>
void BrickIterator< T, Dim >::moveBy ( int  i,
int  j,
int  k 
)
inline

◆ offset() [1/4]

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::offset ( int *  i) const
inline

Definition at line 119 of file BrickIterator.h.

References BrickIterator< T, Dim >::Current, vec< T, Length >::dot(), and BrickIterator< T, Dim >::Strides.

Here is the call graph for this function:

◆ offset() [2/4]

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::offset ( int  i) const
inline

◆ offset() [3/4]

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::offset ( int  i,
int  j 
) const
inline

◆ offset() [4/4]

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::offset ( int  i,
int  j,
int  k 
) const
inline

◆ op_pp()

template<class T , unsigned Dim>
void BrickIterator< T, Dim >::op_pp
protected

Definition at line 111 of file BrickIterator.hpp.

References Dim.

Referenced by BrickIterator< T, Dim >::operator++().

◆ operator!=()

template<class T , unsigned Dim>
bool BrickIterator< T, Dim >::operator!= ( const BrickIterator< T, Dim > &  a) const
inline

Definition at line 83 of file BrickIterator.h.

References a, and BrickIterator< T, Dim >::Current.

◆ operator*()

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::operator* ( ) const
inline

Definition at line 89 of file BrickIterator.h.

References BrickIterator< T, Dim >::Current.

Referenced by BareFieldIterator< T, Dim >::operator*().

◆ operator++()

template<class T , unsigned Dim>
BrickIterator & BrickIterator< T, Dim >::operator++ ( )
inline

Definition at line 73 of file BrickIterator.h.

References BrickIterator< T, Dim >::op_pp().

Referenced by BareFieldIterator< T, Dim >::operator++(), and IndexedBareFieldIterator< T, Dim >::operator++().

Here is the call graph for this function:

◆ operator==()

template<class T , unsigned Dim>
bool BrickIterator< T, Dim >::operator== ( const BrickIterator< T, Dim > &  a) const
inline

Definition at line 79 of file BrickIterator.h.

References a, and BrickIterator< T, Dim >::Current.

◆ putMessage()

template<class T , unsigned Dim>
Message & BrickIterator< T, Dim >::putMessage ( Message m,
bool  makecopy = true 
)

◆ rewind()

template<class T , unsigned Dim>
void BrickIterator< T, Dim >::rewind ( unsigned  d)
inline

Definition at line 100 of file BrickIterator.h.

References BrickIterator< T, Dim >::Current, BrickCounter< Dim >::rewind(), and BrickIterator< T, Dim >::Strides.

Referenced by for_each().

Here is the call graph for this function:

◆ step()

template<class T , unsigned Dim>
void BrickIterator< T, Dim >::step ( unsigned  d)
inline

Definition at line 95 of file BrickIterator.h.

References BrickIterator< T, Dim >::Current, BrickCounter< Dim >::step(), and BrickIterator< T, Dim >::Strides.

Referenced by all_values_equal(), and for_each().

Here is the call graph for this function:

◆ Stride()

template<class T , unsigned Dim>
int BrickIterator< T, Dim >::Stride ( int  i) const
inline

Definition at line 160 of file BrickIterator.h.

References BrickIterator< T, Dim >::Strides.

Referenced by for_each().

◆ unit_offset() [1/3]

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::unit_offset ( int  i) const
inline

Definition at line 123 of file BrickIterator.h.

References BrickIterator< T, Dim >::Current.

Referenced by for_each().

◆ unit_offset() [2/3]

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::unit_offset ( int  i,
int  j 
) const
inline

◆ unit_offset() [3/3]

template<class T , unsigned Dim>
T & BrickIterator< T, Dim >::unit_offset ( int  i,
int  j,
int  k 
) const
inline

◆ whole()

template<class T , unsigned Dim>
bool BrickIterator< T, Dim >::whole ( ) const
inline

Definition at line 76 of file BrickIterator.h.

References BrickIterator< T, Dim >::Whole.

Referenced by DiscField< Dim >::write_offset_and_data().

Member Data Documentation

◆ Current

template<class T , unsigned Dim>
T* __restrict__ BrickIterator< T, Dim >::Current
protected

◆ Strides

template<class T , unsigned Dim>
vec<int,Dim> BrickIterator< T, Dim >::Strides
protected

◆ Whole

template<class T , unsigned Dim>
bool BrickIterator< T, Dim >::Whole
protected

The documentation for this class was generated from the following files: