Public Types | Public Member Functions

MultiArray< N, T > Struct Template Reference
[Multidimensional Arrays with Flexible Data Layout and On-Demand Slice Creation]

A multidimensional array for data that are stored via a native, writable C++ pointer. More...

#include <MultiArray.hpp>

List of all members.

Public Types

Public Member Functions


Detailed Description

template<int N, class T>
struct MultiArray< N, T >

A multidimensional array for data that are stored via a native, writable C++ pointer.

Note that no memory management of whatever kind is performed here, data allocation and deletion has to be done somewhere else.

Indexing by consecuted [] operators is REVERSED as to using a MultiIndex because the LAST index is running fastest!

Examples:

ColoredLines.cpp, CreatorExample.cpp, HelicalLines.cpp, InterpolatedDerivative.cpp, InterpolatedVectorDerivative.cpp, Interpolation.cpp, MonochromeSurface.cpp, NumericalGeodesics3D.cpp, NumericalGeodesics4D.cpp, NumericalPolarGeodesic2D.cpp, NumericalPolarSchwarzschild.cpp, PolychromeSurface.cpp, Sphere.cpp, and uniform_scalar.cpp.


Constructor & Destructor Documentation

template<int N, class T>
MultiArray< N, T >::MultiArray ( const Iterator< T > &  data,
const MultiIndex< N > &  Sz 
) [inline]

Construct multidimensional array from iterator object and dimensionality.

No on-demand data creation here.


Member Function Documentation

template<int N, class T>
Hyperslab_t MultiArray< N, T >::operator[] ( index_t  i  )  const [inline]

Extract an N-1 dimensional hyperslab of the current data set.

The returned objects contain a pointer to the original data (which are shared with the hyperslab) and N-1 indices referring to the respective dimensions. Note that the hyperslab data reside contigously in memory (but might still be a separated compound type, i.e. a compound type with its component distributed in different arrays).

Indexing via consecutive [] operators is SLOW as compared with multidimensional index access.

Reimplemented from MultiArrayBase< N, T >.