LTL  2.0.x
Classes | Typedefs | Enumerations

Classes

class  ltl::MArrayIterConst< T, N >
 
class  ltl::MArrayIter< T, N >
 
class  ltl::ltl::MArrayIterConst< T, N >
 
class  ltl::ltl::MArrayIter< T, N >
 

Typedefs

typedef std::forward_iterator_tag ltl::MArrayIterConst< T, N >::iterator_category
 std::iterator typedefs More...
 
typedef int ltl::MArrayIterConst< T, N >::difference_type
 
typedef MArray< T, N >::value_type ltl::MArrayIterConst< T, N >::value_type
 
typedef MArray< T, N >::const_reference ltl::MArrayIterConst< T, N >::const_reference
 
typedef MArray< T, N >::const_pointer ltl::MArrayIterConst< T, N >::const_pointer
 
typedef MArray< T, N >::reference ltl::MArrayIterConst< T, N >::reference
 
typedef MArray< T, N >::pointer ltl::MArrayIterConst< T, N >::pointer
 
typedef std::forward_iterator_tag ltl::ltl::MArrayIterConst< T, N >::iterator_category
 std::iterator typedefs More...
 
typedef int ltl::ltl::MArrayIterConst< T, N >::difference_type
 
typedef MArray< T, N >::value_type ltl::ltl::MArrayIterConst< T, N >::value_type
 
typedef MArray< T, N >::const_reference ltl::ltl::MArrayIterConst< T, N >::const_reference
 
typedef MArray< T, N >::const_pointer ltl::ltl::MArrayIterConst< T, N >::const_pointer
 
typedef MArray< T, N >::reference ltl::ltl::MArrayIterConst< T, N >::reference
 
typedef MArray< T, N >::pointer ltl::ltl::MArrayIterConst< T, N >::pointer
 

Enumerations

enum  { ltl::MArrayIterConst< T, N >::dims =N }
 These define constants that are used by the expression template engine. More...
 
enum  { ltl::MArrayIterConst< T, N >::numIndexIter = 0 }
 
enum  { ltl::MArrayIterConst< T, N >::numConvolution = 0 }
 
enum  { ltl::MArrayIterConst< T, N >::isVectorizable = 1 }
 
enum  { ltl::ltl::MArrayIterConst< T, N >::dims =N }
 These define constants that are used by the expression template engine. More...
 
enum  { ltl::ltl::MArrayIterConst< T, N >::numIndexIter = 0 }
 
enum  { ltl::ltl::MArrayIterConst< T, N >::numConvolution = 0 }
 
enum  { ltl::ltl::MArrayIterConst< T, N >::isVectorizable = 1 }
 

Detailed Description

Iterators are "generalized pointers" to the elements of an array of arbitrary geometry, providing two operations, namely dereferencing via operator* (returning the value of the element currently pointed to or a reference to it for use on the rhs) and moving the "pointer" to the next element via operator++. In addition, these classes provide the necessary infrastructure to efficiently loop over arbitrary array geometries. This is used by the expression template engine and the vectorizer.

As a neat extra feature, the iterators are compatible with those known from the Standard Template Library (STL). So you can use the STL algorithms on MArrays. The only thing to know here is that the standard iterators in the LTL are only models of forward_iterators.

We provide a second set of iterators which are true random_access_iterators, but only under the precondition that the associated ltl::MArray object has a contiguous memory layout (which is always true for newly allocated arrays and for suitable subarrays or slices). The random-access iterators are then simply pointers to the array's data, aka objects of type T*. These are obtained by calling MArray::beginRA() and MArray::endRA().

Typedef Documentation

◆ iterator_category [1/2]

template<typename T, int N>
typedef std::forward_iterator_tag ltl::MArrayIterConst< T, N >::iterator_category

std::iterator typedefs

◆ difference_type [1/2]

template<typename T, int N>
typedef int ltl::MArrayIterConst< T, N >::difference_type

◆ value_type [1/2]

template<typename T, int N>
typedef MArray<T,N>::value_type ltl::MArrayIterConst< T, N >::value_type

◆ const_reference [1/2]

template<typename T, int N>
typedef MArray<T,N>::const_reference ltl::MArrayIterConst< T, N >::const_reference

◆ const_pointer [1/2]

template<typename T, int N>
typedef MArray<T,N>::const_pointer ltl::MArrayIterConst< T, N >::const_pointer

◆ reference [1/2]

template<typename T, int N>
typedef MArray<T,N>::reference ltl::MArrayIterConst< T, N >::reference

◆ pointer [1/2]

template<typename T, int N>
typedef MArray<T,N>::pointer ltl::MArrayIterConst< T, N >::pointer

◆ iterator_category [2/2]

template<typename T , int N>
typedef std::forward_iterator_tag ltl::ltl::MArrayIterConst< T, N >::iterator_category

std::iterator typedefs

◆ difference_type [2/2]

template<typename T , int N>
typedef int ltl::ltl::MArrayIterConst< T, N >::difference_type

◆ value_type [2/2]

template<typename T , int N>
typedef MArray<T,N>::value_type ltl::ltl::MArrayIterConst< T, N >::value_type

◆ const_reference [2/2]

template<typename T , int N>
typedef MArray<T,N>::const_reference ltl::ltl::MArrayIterConst< T, N >::const_reference

◆ const_pointer [2/2]

template<typename T , int N>
typedef MArray<T,N>::const_pointer ltl::ltl::MArrayIterConst< T, N >::const_pointer

◆ reference [2/2]

template<typename T , int N>
typedef MArray<T,N>::reference ltl::ltl::MArrayIterConst< T, N >::reference

◆ pointer [2/2]

template<typename T , int N>
typedef MArray<T,N>::pointer ltl::ltl::MArrayIterConst< T, N >::pointer

Enumeration Type Documentation

◆ anonymous enum

template<typename T, int N>
anonymous enum

These define constants that are used by the expression template engine.

Enumerator
dims 

◆ anonymous enum

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

◆ anonymous enum

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

◆ anonymous enum

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

◆ anonymous enum

template<typename T , int N>
anonymous enum

These define constants that are used by the expression template engine.

Enumerator
dims 

◆ anonymous enum

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

◆ anonymous enum

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

◆ anonymous enum

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