MArray iterators
[The Class MArray]

Classes

Typedefs

Enumerations


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

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

std::iterator typedefs

template<typename T, int N>
typedef int ltl::MArrayIterConst< T, N >::difference_type [inherited]
template<typename T, int N>
typedef MArray<T,N>::value_type ltl::MArrayIterConst< T, N >::value_type [inherited]
template<typename T, int N>
typedef MArray<T,N>::const_reference ltl::MArrayIterConst< T, N >::const_reference [inherited]
template<typename T, int N>
typedef MArray<T,N>::const_pointer ltl::MArrayIterConst< T, N >::const_pointer [inherited]
template<typename T, int N>
typedef MArray<T,N>::reference ltl::MArrayIterConst< T, N >::reference [inherited]
template<typename T, int N>
typedef MArray<T,N>::pointer ltl::MArrayIterConst< T, N >::pointer [inherited]

Enumeration Type Documentation

template<typename T, int N>
anonymous enum [inherited]

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

Enumerator:
dims 
template<typename T, int N>
anonymous enum [inherited]
Enumerator:
numIndexIter 
template<typename T, int N>
anonymous enum [inherited]
Enumerator:
numConvolution 
template<typename T, int N>
anonymous enum [inherited]
Enumerator:
isVectorizable 

Generated on 19 Feb 2015 for LTL by  doxygen 1.6.1