|
| enum | { Dims = 1
} |
|
typedef CreativeIterator< T > | Base_t |
|
typedef T | value_type |
|
typedef Iterator< T > | Storage_t |
| | The layout of the stored data.
|
|
typedef Iterator< T >::reference_t | reference_t |
|
typedef META::IF< MetaInfo< T >::MULTIPLICITY==1, component_t, FixedArray_t >::result | ValueBase_t |
|
typedef MetaInfo< T >::element_t | component_t |
|
typedef Iterator< T > | SliceStorge_t |
| | The storage type of a subslice.
|
|
typedef MultiArrayBase< N-1, T > | Slice_t |
| | The type of a slice of this array All data in this slice are still contiguous.
|
|
typedef MetaInfo< T >::element_t | component_t |
|
typedef FixedArray< component_t, MetaInfo< T >::MULTIPLICITY > | FixedArray_t |
|
typedef META::IF< MetaInfo< T >::MULTIPLICITY==1, component_t, FixedArray_t >::result | ValueBase_t |
|
typedef META::IF< MetaInfo< T >::MULTIPLICITY==1, void, FixedArray_t >::result | FixedArrayBase_t |
| | If the type has a non-zero multiplicity, then there exists an associated base class of fixed arrays.
|
|
typedef Eagle::Vector< component_t, MetaInfo< T >::MULTIPLICITY > | VectorArray_t |
|
typedef META::IF< MetaInfo< T >::RANK==0, void, VectorArray_t >::result | VectorArrayBase_t |
| | If the type has a non-zero rank, then there exists an associated base class of vectors.
|
|
typedef IteratorBase< T > | Base_t |
|
typedef T | value_t |
|
typedef Eagle::MetaInfo< value_t > | FI |
|
typedef FI::element_t | component_t |
|
typedef ElementryArrayTrait< T >::basetype_t | array_t |
|
typedef T & | reference_t |
| | The reference type.
|
|
typedef Eagle::MetaInfo< T > | info_t |
|
typedef info_t::element_t | element_info_t |
|
|
| MultiArrayBase (const Iterator< T > &data, const MultiIndex< Dims > &Extension, DataCreator< T > *Crec) |
| | One-dimensional constructor.
|
|
| MultiArrayBase (T *data, const MultiIndex< 1 > &Extension, DataCreator< T > *Crec) |
| | Constructor.
|
|
const Storage_t & | storage () const |
| | Reference to the stored data.
|
|
void | Resize (T *newData, const MultiIndex< 1 > &D) |
| | Change internally stored memory layout.
|
|
void | Resize (T *newData, const index_t &D) |
| | Change internally stored memory layout, shortcut for 1D.
|
|
unsigned long | memsize () const |
| | Return the number of bytes occupied by this MultiArray.
|
|
Iterator< T > | getData (index_t i) const |
|
const MultiIndex< Dims > & | Size () const |
| | Return the number of elements in each direction, a multidimensional index.
|
|
index_t | nElements () const |
| | Return the total number of elements This is equivalent to calling Size().size().
|
|
const reference_t | operator[] (index_t i) const |
| | Return a stored element accessed by a linear index possible invoking the local creator if such exists.
|
|
reference_t | operator[] (index_t i) |
| | Return a reference to a stored element via a linear index, possible invoking the local creator if such exists.
|
|
const reference_t | operator[] (const MultiIndex< 1 > &I) const |
| | Index via multidimensional index, readonly.
|
|
reference_t | operator[] (const MultiIndex< 1 > &I) |
| | Access via multidimensional index, modifyable.
|
|
const reference_t | slice (index_t i) const |
|
const reference_t | first () const |
| | Return reference to the first element.
|
|
const reference_t | last () const |
| | Return last element in the array.
|
| reference_t | getElement (const MultiIndex< N > &I) const |
| | Element access.
|
|
| CreativeIterator (const Iterator< T > &D, DataCreator< T > *C=0) |
|
| CreativeIterator (index_t length, T *data, DataCreator< T > *C=0) |
|
| CreativeIterator (const CreativeIterator &CI) |
|
| Iterator (index_t howmany, T *Ptr) |
| | Construct view pointer from contiguous storage.
|
|
| Iterator (const HyperslabParameters &P, T *Ptr) |
| | Construct iterator with alternative data, but otherwise compatible properties.
|
|
| Iterator (const Iterator &P) |
| | Copy Constructor.
|
|
| Iterator (const Iterator &P, int) |
| | Copy Constructor with irrelevant member selection2.
|
|
template<int Components> |
| | Iterator (index_t howmany, FixedArray< T, Components > *Ptr, int component) |
| | Construct view pointer to a single component within a contiguous storage of array objects.
|
| template<int Components> |
| | Iterator (const Iterator< FixedArray< T, Components > > &It, int component) |
| template<int Components> |
| | Iterator (index_t Length, Eagle::VVector< Components, T > *Ptr, int component) |
| | Construct view pointer to a single component within a contigous storage of array objects.
|
|
| Iterator (index_t ishift, const Iterator &P, const Add &) |
| | Addition Constructor.
|
|
Iterator< array_t > | getArrayIterator () const |
| | Get an iterator that operates on associated FixedArray<> subjects.
|
|
Iterator< component_t > | getComponent (int n) const |
| | Get an iterator that operates on the nth component.
|
|
T & | operator[] (index_t i) const |
| | Access an element of the array, writeable.
|
| const T & | getValue (index_t i) const |
| | Get the value, readonly.
|
| void | set (const T &Value) |
| | Set all elements to the same value.
|
|
const_ranged_for_iterator< T > | begin () const |
|
const_ranged_for_iterator< T > | end () const |
|
ranged_for_iterator< T > | begin () |
|
ranged_for_iterator< T > | end () |
|
template<class S> |
| T & | operator[] (const ranged_for_iterator< S > &I) |
|
template<class S> |
| const T & | operator[] (const ranged_for_iterator< S > &I) const |
|
template<class S> |
| T & | operator[] (const const_ranged_for_iterator< S > &I) |
|
template<class S> |
| const T & | operator[] (const const_ranged_for_iterator< S > &I) const |
|
| IteratorBase (index_t Length, T *d, index_t Stride, index_t Offset) |
|
| IteratorBase (const IteratorBase &IB) |
|
| IteratorBase (const HyperslabParameters &IB, T *d) |
| | Construct compatible iterator with different data.
|
|
| IteratorBase (index_t ishift, const IteratorBase &P, const Add &) |
|
| ElementIterator (index_t Length, T *Data, index_t Stride, index_t Offset) |
| | Construct an element iterator.
|
|
| ElementIterator (const ElementIterator &It) |
| | Copy Constructor.
|
|
| ElementIterator (const HyperslabParameters &It, T *newData) |
| | Constructor compatible iterator with new data.
|
|
| ElementIterator (index_t i, const ElementIterator &It, const Add &) |
| | Addition Constructor.
|
|
void | SetNewData (T *newData, index_t newLength) throw () |
| | Change the stored data chunk to a new location and length.
|
| T * | ptr (int c=0) const |
| | Return pointer to data, which is good for C interface, but otherwise, avoid that.
|
| T & | getElement (index_t i, int c) const |
| | Element access (no range check!).
|
|
| operator bool () const |
| | Implicit conversion to boolean: Check whether this is a valid pointer.
|
|
| HyperslabParameters (index_t Length, index_t Stride, index_t Offset) throw () |
| | Simple constructorm sets shift and cropped members to zero.
|
|
| HyperslabParameters (const HyperslabParameters &H) throw () |
| | Copy constructor.
|
|
| HyperslabParameters (index_t i, const HyperslabParameters &H) throw () |
| | Pointer addition constructor (sets the shift member).
|
|
index_t | getLength () const throw () |
| | Return the number of elements which can be accessed through this ElementIterator.
|
|
index_t | getOffset () const throw () |
|
index_t | getStride () const throw () |
|
index_t | getShift () const throw () |
|
index_t | getCropped () const throw () |
| bool | isSeparatedCompound () const throw () |
| | Tell if the iterator refers to a data set which is built from arrays of structure members, i.e.
|
|
index_t | multiplicity () const throw () |
| | Return number of elements which form an entity.
|
|
index_t | maxcount () const throw () |
| | Return the number of steps which can be traversed through this ElementIterator.
|
| index_t | count () const throw () |
| | Return the number of steps which can be traversed through this ElementIterator.
|
| void | setCount (index_t size) throw () |
| | Set the maximally allowed count, i.e.
|
| index_t | getIndex (index_t i, int c) const throw () |
| | Given a major and a minor index, compute the overall index in the dataset according to.
|
|
HyperslabParameters & | getHyperslabParameters () throw () |
|
const HyperslabParameters & | getHyperslabParameters () const throw () |
template<class T>
class Fiber::MultiArrayBase< 1, T >
Stop the recursive definition of multidimensional arrays.
- Note
- At each element access, the access function checks for the existence of an Creator. This additional conditional check turns down performance significantly. However, it is required as all the elements of even a logically consecutive slice might reside in different blocks of data, and in this worst case each block needs to be checked. Any better solution here would be greatly appreciated!!