Public Member Functions | List of all members
Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > Class Template Reference

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

+ Inheritance diagram for Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >:

Public Member Functions

 Array ()
 
 Array (Index dim)
 
 Array (Index rows, Index cols)
 
 Array (const Scalar &x, const Scalar &y)
 
 Array (const Scalar &x, const Scalar &y, const Scalar &z)
 
 Array (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
 
template<typename OtherDerived >
 Array (const ArrayBase< OtherDerived > &other)
 
 Array (const Array &other)
 
template<typename OtherDerived >
 Array (const ReturnByValue< OtherDerived > &other)
 
template<typename OtherDerived >
 Array (const EigenBase< OtherDerived > &other)
 
template<typename OtherDerived >
Arrayoperator= (const EigenBase< OtherDerived > &other)
 
template<typename OtherDerived >
Arrayoperator= (const ArrayBase< OtherDerived > &other)
 
Arrayoperator= (const Array &other)
 
template<typename OtherDerived >
void swap (ArrayBase< OtherDerived > const &other)
 
- Public Member Functions inherited from PlainObjectBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
void conservativeResize (Index rows, Index cols)
 
void conservativeResize (Index rows, NoChange_t)
 
void conservativeResize (NoChange_t, Index cols)
 
void conservativeResize (Index size)
 
void conservativeResizeLike (const DenseBase< OtherDerived > &other)
 
const Scalar * data () const
 
Scalar * data ()
 
Array< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
lazyAssign (const DenseBase< OtherDerived > &other)
 
Array< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator= (const PlainObjectBase &other)
 
Array< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator= (const EigenBase< OtherDerived > &other)
  More...
 
 PlainObjectBase (const EigenBase< OtherDerived > &other)
 
void resize (Index rows, Index cols)
 
void resize (Index size)
 
void resize (NoChange_t, Index cols)
 
void resize (Index rows, NoChange_t)
 
void resizeLike (const EigenBase< OtherDerived > &_other)
 

Additional Inherited Members

- Static Public Member Functions inherited from PlainObjectBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
static ConstMapType Map (const Scalar *data)
 
static MapType Map (Scalar *data)
 
static ConstMapType Map (const Scalar *data, Index size)
 
static MapType Map (Scalar *data, Index size)
 
static ConstMapType Map (const Scalar *data, Index rows, Index cols)
 
static MapType Map (Scalar *data, Index rows, Index cols)
 
static StridedConstMapType
< Stride< Outer, Inner >
>::type 
Map (const Scalar *data, const Stride< Outer, Inner > &stride)
 
static StridedMapType< Stride
< Outer, Inner > >::type 
Map (Scalar *data, const Stride< Outer, Inner > &stride)
 
static StridedConstMapType
< Stride< Outer, Inner >
>::type 
Map (const Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static StridedMapType< Stride
< Outer, Inner > >::type 
Map (Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static StridedConstMapType
< Stride< Outer, Inner >
>::type 
Map (const Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
static StridedMapType< Stride
< Outer, Inner > >::type 
Map (Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
static ConstAlignedMapType MapAligned (const Scalar *data)
 
static AlignedMapType MapAligned (Scalar *data)
 
static ConstAlignedMapType MapAligned (const Scalar *data, Index size)
 
static AlignedMapType MapAligned (Scalar *data, Index size)
 
static ConstAlignedMapType MapAligned (const Scalar *data, Index rows, Index cols)
 
static AlignedMapType MapAligned (Scalar *data, Index rows, Index cols)
 
static
StridedConstAlignedMapType
< Stride< Outer, Inner >
>::type 
MapAligned (const Scalar *data, const Stride< Outer, Inner > &stride)
 
static StridedAlignedMapType
< Stride< Outer, Inner >
>::type 
MapAligned (Scalar *data, const Stride< Outer, Inner > &stride)
 
static
StridedConstAlignedMapType
< Stride< Outer, Inner >
>::type 
MapAligned (const Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static StridedAlignedMapType
< Stride< Outer, Inner >
>::type 
MapAligned (Scalar *data, Index size, const Stride< Outer, Inner > &stride)
 
static
StridedConstAlignedMapType
< Stride< Outer, Inner >
>::type 
MapAligned (const Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
static StridedAlignedMapType
< Stride< Outer, Inner >
>::type 
MapAligned (Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride)
 
- Protected Member Functions inherited from PlainObjectBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
Array< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
_set (const DenseBase< OtherDerived > &other)
 Copies the value of the expression other into *this with automatic resizing. More...
 

Detailed Description

template<typename _Scalar, int _Rows, int _Cols, int _Options = AutoAlign | ( (_Rows==1 && _Cols!=1) ? RowMajor : (_Cols==1 && _Rows!=1) ? ColMajor : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ), int _MaxRows = _Rows, int _MaxCols = _Cols>
class Eigen::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.

This class can be extended with the help of the plugin mechanism described on the page Customizing/Extending Eigen by defining the preprocessor symbol EIGEN_ARRAY_PLUGIN.

See Also
Tutorial page 3 - The Array class and coefficient-wise operations, The class hierarchy

Constructor & Destructor Documentation

Array ( )
inlineexplicit

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)
Array ( Index  dim)
inlineexplicit

Constructs a vector or row-vector with given dimension. This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.

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.

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.

Array ( const Scalar &  x,
const Scalar &  y 
)

constructs an initialized 2D vector with given coefficients

Array ( const Scalar &  x,
const Scalar &  y,
const Scalar &  z 
)
inline

constructs an initialized 3D vector with given coefficients

Array ( const Scalar &  x,
const Scalar &  y,
const Scalar &  z,
const Scalar &  w 
)
inline

constructs an initialized 4D vector with given coefficients

Array ( const ArrayBase< OtherDerived > &  other)
inline

Constructor copying the value of the expression other

Array ( const Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &  other)
inline

Copy constructor

Array ( const ReturnByValue< OtherDerived > &  other)
inline

Copy constructor with in-place evaluation

Array ( const EigenBase< OtherDerived > &  other)
inline
See Also
MatrixBase::operator=(const EigenBase<OtherDerived>&)

Member Function Documentation

Array& 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=.

Array& 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.

Array& 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=.

void 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.


The documentation for this class was generated from the following files: