Main MRPT website > C++ reference
MRPT logo
Public Types | Public Member Functions | Friends

Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > Class Template Reference


Detailed Description

template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
class Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >

General-purpose arrays with easy API for coefficient-wise operations.

The Array class is very similar to the Matrix class. It provides general-purpose one- and two-dimensional arrays. The difference between the Array and the Matrix class is primarily in the API: the API for the Array class provides easy access to coefficient-wise operations, while the API for the Matrix class provides easy access to linear-algebra operations.

See also:
TutorialArrayClass, TopicClassHierarchy

Definition at line 52 of file Array.h.

#include <src/Core/Array.h>

Inheritance diagram for Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { Options = _Options }
enum  { NeedsToAlign }
typedef PlainObjectBase< ArrayBase
typedef Base::PlainObject PlainObject

Public Member Functions

template<typename OtherDerived >
EIGEN_STRONG_INLINE Arrayoperator= (const EigenBase< OtherDerived > &other)
 The usage of using Base::operator=; fails on MSVC.
template<typename OtherDerived >
EIGEN_STRONG_INLINE Arrayoperator= (const ArrayBase< OtherDerived > &other)
 Copies the value of the expression other into *this with automatic resizing.
EIGEN_STRONG_INLINE Arrayoperator= (const Array &other)
 This is a special case of the templated operator=.
EIGEN_STRONG_INLINE Array ()
 Default constructor.
EIGEN_STRONG_INLINE Array (Index dim)
 Constructs a vector or row-vector with given dimension.
 Array (Index rows, Index cols)
 constructs an uninitialized matrix with rows rows and cols columns.
 Array (const Scalar &x, const Scalar &y)
 constructs an initialized 2D vector with given coefficients
EIGEN_STRONG_INLINE Array (const Scalar &x, const Scalar &y, const Scalar &z)
 constructs an initialized 3D vector with given coefficients
EIGEN_STRONG_INLINE Array (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
 constructs an initialized 4D vector with given coefficients
 Array (const Scalar *data)
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array (const ArrayBase< OtherDerived > &other)
 Constructor copying the value of the expression other.
EIGEN_STRONG_INLINE Array (const Array &other)
 Copy constructor.
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array (const ReturnByValue< OtherDerived > &other)
 Copy constructor with in-place evaluation.
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array (const EigenBase< OtherDerived > &other)
template<typename OtherDerived >
void swap (ArrayBase< OtherDerived > const &other)
 Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the data pointers.
Index innerStride () const
Index outerStride () const

Friends

struct internal::conservative_resize_like_impl
struct internal::matrix_swap_impl

Member Typedef Documentation

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
typedef PlainObjectBase<Array> Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Base
template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
typedef Base::PlainObject Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::PlainObject

Definition at line 61 of file Array.h.


Member Enumeration Documentation

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
anonymous enum
Enumerator:
Options 

Definition at line 60 of file Array.h.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
anonymous enum
Enumerator:
NeedsToAlign 

Definition at line 69 of file Array.h.


Constructor & Destructor Documentation

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array (  )  [inline, explicit]

Default constructor.

For fixed-size matrices, does nothing.

For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix is called a null matrix. This constructor is the unique way to create null matrices: resizing a matrix to 0 is not supported.

See also:
resize(Index,Index)

Definition at line 122 of file Array.h.

References EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( Index  dim  )  [inline, explicit]

Constructs a vector or row-vector with given dimension.

Note that this is only useful for dynamic-size vectors. For fixed-size vectors, it is redundant to pass the dimension here, so it makes more sense to use the default constructor Matrix() instead.

Definition at line 145 of file Array.h.

References Dynamic, eigen_assert, EIGEN_INITIALIZE_BY_ZERO_IF_THAT_OPTION_IS_ENABLED, and EIGEN_STATIC_ASSERT_VECTOR_ONLY.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( Index  rows,
Index  cols 
)

constructs an uninitialized matrix with rows rows and cols columns.

This is useful for dynamic-size matrices. For fixed-size matrices, it is redundant to pass these parameters, so one should use the default constructor Matrix() instead.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const Scalar x,
const Scalar y 
)

constructs an initialized 2D vector with given coefficients

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const Scalar x,
const Scalar y,
const Scalar z 
) [inline]
template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const Scalar x,
const Scalar y,
const Scalar z,
const Scalar w 
) [inline]
template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const Scalar data  )  [inline, explicit]

Definition at line 187 of file Map.h.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const ArrayBase< OtherDerived > &  other  )  [inline]

Constructor copying the value of the expression other.

Definition at line 197 of file Array.h.

References PlainObjectBase< Derived >::_set_noalias().

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &  other  )  [inline]

Copy constructor.

Definition at line 204 of file Array.h.

References PlainObjectBase< Derived >::_set_noalias().

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const ReturnByValue< OtherDerived > &  other  )  [inline]

Copy constructor with in-place evaluation.

Definition at line 212 of file Array.h.

References ReturnByValue< Derived >::cols(), ReturnByValue< Derived >::evalTo(), PlainObjectBase< Derived >::resize(), and ReturnByValue< Derived >::rows().

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array ( const EigenBase< OtherDerived > &  other  )  [inline]

Member Function Documentation

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
Index Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::innerStride (  )  const [inline]

Definition at line 236 of file Array.h.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array& Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::operator= ( const EigenBase< OtherDerived > &  other  )  [inline]

The usage of using Base::operator=; fails on MSVC.

Since the code below is working with GCC and MSVC, we skipped the usage of 'using'. This should be done only for operator=.

Reimplemented from PlainObjectBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >.

Definition at line 84 of file Array.h.

References PlainObjectBase< Derived >::operator=().

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
EIGEN_STRONG_INLINE Array& Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::operator= ( const ArrayBase< OtherDerived > &  other  )  [inline]

Copies the value of the expression other into *this with automatic resizing.

*this might be resized to match the dimensions of other. If *this was a null matrix (not already initialized), it will be initialized.

Note that copying a row-vector into a vector (and conversely) is allowed. The resizing, if any, is then done in the appropriate way so that row-vectors remain row-vectors and vectors remain vectors.

Definition at line 99 of file Array.h.

References PlainObjectBase< Derived >::_set().

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
EIGEN_STRONG_INLINE Array& Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::operator= ( const Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &  other  )  [inline]

This is a special case of the templated operator=.

Its purpose is to prevent a default operator= from hiding the templated operator=.

Definition at line 107 of file Array.h.

References PlainObjectBase< Derived >::_set().

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
Index Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::outerStride (  )  const [inline]

Definition at line 237 of file Array.h.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
template<typename OtherDerived >
void Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::swap ( ArrayBase< OtherDerived > const &  other  )  [inline]

Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the data pointers.

Definition at line 233 of file Array.h.

References PlainObjectBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::_swap().


Friends And Related Function Documentation

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
friend struct internal::conservative_resize_like_impl [friend]

Definition at line 65 of file Array.h.

template<typename _Scalar , int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
friend struct internal::matrix_swap_impl [friend]



Page generated by Doxygen 1.7.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011