LTL  2.0.x
Public Types | Public Member Functions | Protected Attributes | List of all members
ltl::IndexIter< T, N > Class Template Reference

Inherits ltl::LTLIterator.

Public Types

enum  { numIndexIter = 1 }
 
enum  { numConvolution = 0 }
 
enum  { isVectorizable = 0 }
 

Public Member Functions

 IndexIter (const MArray< T, N > &array)
 
 IndexIter (const Shape< N > *s)
 
 IndexIter (const IndexIter< T, N > &other)
 
void reset ()
 
IndexIter< T, N > & operator++ ()
 
IndexIter< T, N > operator++ (int)
 
void advance ()
 
void advance (const int i)
 
void advance (const int i, const int dim)
 
void advanceWithStride1 ()
 
FixedVector< int, N > readWithoutStride (const int i) const
 
FixedVector< int, N > readWithStride (const int i) const
 
FixedVector< int, N > readWithStride (const int i, const int dim) const
 
FixedVector< int, N > readAtOffsetDim (const int i, const int dim) const
 
FixedVector< int, N > readAtOffset (const int i) const
 
FixedVector< int, N > readAtOffset (const int i, const int j) const
 
FixedVector< int, N > readAtOffset (const int i, const int j, const int k) const
 
int boundary_l (const int) const
 
int boundary_u (const int) const
 
void advanceDim ()
 
void advanceDim (const int cutDim)
 
bool needAdvanceDim () const
 
bool done () const
 
const FixedVector< int, N > & index () const
 
int index (const int dim) const
 
const FixedVector< int, N > & operator* () const
 
const FixedVector< int, N > & operator() () const
 
int operator() (const int dim) const
 
void printRanges () const
 
const Shape< N > * shape () const
 
bool isStorageContiguous (void) const
 
bool isStride1 () const
 
bool isConformable (const Shape< N > &other) const
 

Protected Attributes

FixedVector< int, N > first_
 
FixedVector< int, N > last_
 
FixedVector< int, N > pos_
 
bool done_
 
const Shape< N > * shape_
 

Detailed Description

template<typename T, int N>
class ltl::IndexIter< T, N >

Iterator object holding vector of index values for each position.

This class is also used for implementing ltl::IndexList and ltl::where().

Member Enumeration Documentation

template<typename T, int N>
anonymous enum
Enumerator
numIndexIter 
template<typename T, int N>
anonymous enum
Enumerator
numConvolution 
template<typename T, int N>
anonymous enum
Enumerator
isVectorizable 

Constructor & Destructor Documentation

template<typename T, int N>
ltl::IndexIter< T, N >::IndexIter ( const MArray< T, N > &  array)
template<typename T, int N>
ltl::IndexIter< T, N >::IndexIter ( const Shape< N > *  s)
template<typename T, int N>
ltl::IndexIter< T, N >::IndexIter ( const IndexIter< T, N > &  other)
inline

Member Function Documentation

template<typename T, int N>
void ltl::IndexIter< T, N >::reset ( )
template<typename T, int N>
IndexIter<T,N>& ltl::IndexIter< T, N >::operator++ ( )
inline
template<typename T, int N>
IndexIter<T,N> ltl::IndexIter< T, N >::operator++ ( int  )
inline
template<typename T, int N>
void ltl::IndexIter< T, N >::advance ( )
inline
template<typename T, int N>
void ltl::IndexIter< T, N >::advance ( const int  i)
inline
template<typename T, int N>
void ltl::IndexIter< T, N >::advance ( const int  i,
const int  dim 
)
inline
template<typename T, int N>
void ltl::IndexIter< T, N >::advanceWithStride1 ( )
inline
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::readWithoutStride ( const int  i) const
inline
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::readWithStride ( const int  i) const
inline
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::readWithStride ( const int  i,
const int  dim 
) const
inline
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::readAtOffsetDim ( const int  i,
const int  dim 
) const
inline
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::readAtOffset ( const int  i) const
inline
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::readAtOffset ( const int  i,
const int  j 
) const
inline
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::readAtOffset ( const int  i,
const int  j,
const int  k 
) const
inline
template<typename T, int N>
int ltl::IndexIter< T, N >::boundary_l ( const int  ) const
inline
template<typename T, int N>
int ltl::IndexIter< T, N >::boundary_u ( const int  ) const
inline
template<typename T, int N>
void ltl::IndexIter< T, N >::advanceDim ( )
template<typename T, int N>
void ltl::IndexIter< T, N >::advanceDim ( const int  cutDim)
template<typename T, int N>
bool ltl::IndexIter< T, N >::needAdvanceDim ( ) const
inline
template<typename T, int N>
bool ltl::IndexIter< T, N >::done ( ) const
inline
template<typename T, int N>
const FixedVector<int,N>& ltl::IndexIter< T, N >::index ( ) const
inline
template<typename T, int N>
int ltl::IndexIter< T, N >::index ( const int  dim) const
inline
template<typename T, int N>
const FixedVector<int,N>& ltl::IndexIter< T, N >::operator* ( ) const
inline
template<typename T, int N>
const FixedVector<int,N>& ltl::IndexIter< T, N >::operator() ( ) const
inline
template<typename T, int N>
int ltl::IndexIter< T, N >::operator() ( const int  dim) const
inline
template<typename T, int N>
void ltl::IndexIter< T, N >::printRanges ( ) const
template<typename T, int N>
const Shape<N>* ltl::IndexIter< T, N >::shape ( ) const
inline
template<typename T, int N>
bool ltl::IndexIter< T, N >::isStorageContiguous ( void  ) const
inline
template<typename T, int N>
bool ltl::IndexIter< T, N >::isStride1 ( ) const
inline
template<typename T, int N>
bool ltl::IndexIter< T, N >::isConformable ( const Shape< N > &  other) const
inline

Member Data Documentation

template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::first_
protected
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::last_
protected
template<typename T, int N>
FixedVector<int,N> ltl::IndexIter< T, N >::pos_
protected
template<typename T, int N>
bool ltl::IndexIter< T, N >::done_
protected
template<typename T, int N>
const Shape<N>* ltl::IndexIter< T, N >::shape_
protected