FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Classes | Functions
Random Access Iteration over elements of a Vector

A set of vectors may be layout in many ways. More...

Classes

class  Fiber::HyperslabParameters
 A set of integer values which describes how to iterate over a certain set of values. More...
 
class  Fiber::ElementIterator< T >
 An iterator which allows to access each component element type of an array of vectors, or a vector of arrays. More...
 
class  Fiber::IteratorBase< T >
 Intermediate base class for generic iterators. More...
 
class  Fiber::Iterator< T >
 Implementation of an Iterator to a sequence of elements, which might be contiguous or a projection of a component from an array of vectors. More...
 
class  Fiber::ElementProxy< Iterator >
 A proxy for Iterators, such that an Iterator's element looks like an Iterator's element (!), even though it isn't (the internal storage layout may be different). More...
 
class  Fiber::Iterator< Eagle::FixedArray< T, C > >
 Implementation of the Separated Compound field type that may virtually merge many separate arrays as one. More...
 

Functions

template<class VectorType >
Iterator< typename FixedArrayTrait< typename Eagle::MetaInfo< VectorType >::element_t, Eagle::MetaInfo< VectorType >::MULTIPLICITY >::array_t > Fiber::farray_iterator (const Iterator< VectorType > &V)
 Convert an iterator to a contiguous array of vectors into an iterator over elements which are FixedArrays.
 

Detailed Description

A set of vectors may be layout in many ways.

The most efficient one is the array of vectors, because then access to each array element can be vectorized. However, the alternative layout to use a vector of arrays also has its merits. The Iterator class provides means to support both layouts at the same time. It also provides a component projection, i.e. to treat a component of a vector array as its own array (e.g. a double array).

Function Documentation

◆ farray_iterator()

template<class VectorType >
Iterator< typename FixedArrayTrait< typename Eagle::MetaInfo< VectorType >::element_t, Eagle::MetaInfo< VectorType >::MULTIPLICITY >::array_t > Fiber::farray_iterator ( const Iterator< VectorType > &  V)
inline

Convert an iterator to a contiguous array of vectors into an iterator over elements which are FixedArrays.

This is only possible if the VectorType is a homogeneous type for which a MetaInfo<> type trait exists.

Note
Usually it is not a good idea to convert a specific type iterator into a generic array iterator, because any vectorization gain will be lost by that. However, one gains generality by this.

References Fiber::HyperslabParameters::count(), Fiber::HyperslabParameters::getLength(), Fiber::ElementIterator< T >::ptr(), and Fiber::HyperslabParameters::setCount().

Referenced by Fiber::Iterator< T >::getArrayIterator().