General-purpose arrays with easy API for coefficient-wise operations. More...
#include <Array.h>
Public Types | |
| enum | { Options = _Options } |
| enum | { NeedsToAlign } |
| typedef PlainObjectBase< Array > | Base |
| typedef Base::PlainObject | PlainObject |
Public Member Functions | |
| template<typename OtherDerived > | |
| EIGEN_STRONG_INLINE Array & | operator= (const EigenBase< OtherDerived > &other) |
| template<typename OtherDerived > | |
| EIGEN_STRONG_INLINE Array & | operator= (const ArrayBase< OtherDerived > &other) |
| EIGEN_STRONG_INLINE Array & | operator= (const Array &other) |
| EIGEN_STRONG_INLINE | Array () |
| Array (internal::constructor_without_unaligned_array_assert) | |
| EIGEN_STRONG_INLINE | Array (Index dim) |
| template<typename T0 , typename T1 > | |
| EIGEN_STRONG_INLINE | Array (const T0 &x, const T1 &y) |
| EIGEN_STRONG_INLINE | Array (const Scalar &x, const Scalar &y, const Scalar &z) |
| EIGEN_STRONG_INLINE | Array (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w) |
| Array (const Scalar *data) | |
| template<typename OtherDerived > | |
| EIGEN_STRONG_INLINE | Array (const ArrayBase< OtherDerived > &other) |
| EIGEN_STRONG_INLINE | Array (const Array &other) |
| template<typename OtherDerived > | |
| EIGEN_STRONG_INLINE | Array (const ReturnByValue< OtherDerived > &other) |
| template<typename OtherDerived > | |
| EIGEN_STRONG_INLINE | Array (const EigenBase< OtherDerived > &other) |
| template<typename OtherDerived > | |
| void | swap (ArrayBase< OtherDerived > const &other) |
| Index | innerStride () const |
| Index | outerStride () const |
Friends | |
| struct | internal::conservative_resize_like_impl |
| struct | internal::matrix_swap_impl |
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 TopicCustomizingEigen by defining the preprocessor symbol EIGEN_ARRAY_PLUGIN.
| typedef PlainObjectBase<Array> Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Base |
Reimplemented from PlainObjectBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >.
| typedef Base::PlainObject Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::PlainObject |
| anonymous enum |
| anonymous enum |
| 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.
| Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | internal::constructor_without_unaligned_array_assert | ) | [inline] |
| 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.
| EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | const T0 & | x, | |
| const T1 & | y | |||
| ) | [inline] |
| EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | const Scalar & | x, | |
| const Scalar & | y, | |||
| const Scalar & | z | |||
| ) | [inline] |
constructs an initialized 3D vector with given coefficients
| EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | const Scalar & | x, | |
| const Scalar & | y, | |||
| const Scalar & | z, | |||
| const Scalar & | w | |||
| ) | [inline] |
constructs an initialized 4D vector with given coefficients
| Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | const Scalar * | data | ) | [inline, explicit] |
| EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | const ArrayBase< OtherDerived > & | other | ) | [inline] |
Constructor copying the value of the expression other
| EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | const Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | other | ) | [inline] |
Copy constructor
| EIGEN_STRONG_INLINE Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Array | ( | const ReturnByValue< OtherDerived > & | other | ) | [inline] |
Copy constructor with in-place evaluation
| Index Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::innerStride | ( | ) | const [inline] |
| 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 > >.
| 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.
| 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=.
| Index Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::outerStride | ( | ) | const [inline] |
| 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.
friend struct internal::conservative_resize_like_impl [friend] |
friend struct internal::matrix_swap_impl [friend] |
Reimplemented from PlainObjectBase< Array< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >.
1.7.1