ivl 679
ivl::array_nd< T, data::subarray< A, I, DERIVED_INFO > > Class Template Reference

Multi-dimensional array of type T. More...

#include <array_nd.hpp>

Inherits ivl::array_common_base< C >.

List of all members.

Public Types

typedef types::t_true has_1d_parenthesis
 types that specify the defined parenthesis operators for this class
typedef const array< size_t,
tiny > & 
size_nd_ref_type
 return type of size_nd in that data-specific class
typedef array< size_t, tiny > size_type
 parameter of resize, in each class of the hierarchy
typedef array< size_t, tiny > stride_ref_type
 return type of stride in that data-specific class

Public Member Functions

base_class & base ()
 get base class
template<class S >
types::best_iterator< array_nd >
::type::reference 
operator() (const array< size_t, S > &indx)
template<class S >
array_nd::const_iterator::reference operator() (const array< size_t, S > &indx) const
constructors
 array_nd ()
 Default constructor.
 array_nd (A &a, const I &idx)
 Construct by defining original array and index array references.
 array_nd (const this_type &a)
 Copy constructor.
filler constructors
 array_nd (size_t count)
 array_nd (size_t count, const T &s)
 array_nd (size_t count, const T *data)
template<class S >
 array_nd (const array< size_t, S > &sz)
template<class S >
 array_nd (const array< size_t, S > &sz, const T &s)
template<class S >
 array_nd (const array< size_t, S > &sz, const T *ptr)
template<class S , class J , class D >
 array_nd (const array< size_t, S > &sz, const array< J, D > &a)
template<class J , class S >
 array_nd (const array_nd< J, S > &a)
Size functions (multidimensional)
size_nd_ref_type size_nd () const
 Get the size for each dimension.
size_t size_nd (size_t d) const
 Get the size for a specific dimension.
stride_ref_type stride () const
size_type size () const
 Get the size for each dimension.
size_t size (size_t d) const
 Get the size for a specific dimension.
size_t ndims () const
 Get the number of dimensions.
Assignment Operators
template<class K >
derived_type & operator= (const K &k)
this_typeoperator= (const this_type &in)
 C++ copy-constructor.

Detailed Description

template<class T, class A, class I, class DERIVED_INFO>
class ivl::array_nd< T, data::subarray< A, I, DERIVED_INFO > >

Multi-dimensional array of type T.

This structure is used to define a multidimensional array of type T. The number of dimensions can be specified when constructing an object and can be altered anytime by using methods like resize(const size_array &, const T).

The simpliest way to access an array_nd element is by using operator() and specifying the offset on each dimension, like this:

 int i = a(2, 3, 2) 

An array_nd inherites all the functionality the array class provides, which means that it can also be indexed as an one-dimensional array using the array subscript operator: []. Keep in mind that in array_nd the elements are stored in column-major order like Fortran and Matlab and not like C. So, the offset is computed like this:

offset = row + column*NUMROWS 

Member Function Documentation

template<class T , class A , class I , class DERIVED_INFO >
template<class S >
array_nd::const_iterator::reference ivl::array_nd< T, data::subarray< A, I, DERIVED_INFO > >::operator() ( const array< size_t, S > &  indx) const [inline]

Selects a single, const element of the array, using a size_array for the coordinates.

template<class T , class A , class I , class DERIVED_INFO >
template<class S >
types::best_iterator<array_nd>::type::reference ivl::array_nd< T, data::subarray< A, I, DERIVED_INFO > >::operator() ( const array< size_t, S > &  indx) [inline]

Selects a single, mutable element of the array, using a size_array for the coordinates.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations