Base class for all 1D and 2D array, and related expressions.
An array is similar to a dense vector or matrix. While matrices are mathematical objects with well defined linear algebra operators, an array is just a collection of scalar values arranged in a one or two dimensionnal fashion. As the main consequence, all operations applied to an array are performed coefficient wise. Furthermore, arrays support scalar math functions of the c++ standard library (e.g., std::sin(x)), and convenient constructors allowing to easily write generic code working for both scalar values and arrays.
This class is the base that is inherited by all array expression types.
Derived | is the derived type, e.g., an array or an expression type. |
Definition at line 49 of file ArrayBase.h.
#include <src/Core/ArrayBase.h>
Public Member Functions | |
const CwiseUnaryOp < internal::scalar_opposite_op < typename internal::traits < Derived >::Scalar >, Derived > | operator- () const |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) const |
const ScalarMultipleReturnType | operator* (const RealScalar &scalar) const |
const CwiseUnaryOp < internal::scalar_quotient1_op < typename internal::traits < Derived >::Scalar >, Derived > | operator/ (const Scalar &scalar) const |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, Derived > | operator* (const std::complex< Scalar > &scalar) const |
Overloaded for efficient real matrix times complex scalar value. | |
template<typename NewType > | |
internal::cast_return_type < Derived, const CwiseUnaryOp < internal::scalar_cast_op < typename internal::traits < Derived >::Scalar, NewType > , Derived > >::type | cast () const |
ConjugateReturnType | conjugate () const |
RealReturnType | real () const |
const ImagReturnType | imag () const |
template<typename CustomUnaryOp > | |
const CwiseUnaryOp < CustomUnaryOp, Derived > | unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const |
Apply a unary operator coefficient-wise. | |
template<typename CustomViewOp > | |
const CwiseUnaryView < CustomViewOp, Derived > | unaryViewExpr (const CustomViewOp &func=CustomViewOp()) const |
NonConstRealReturnType | real () |
NonConstImagReturnType | imag () |
EIGEN_STRONG_INLINE const CwiseUnaryOp < internal::scalar_abs_op < Scalar >, Derived > | cwiseAbs () const |
EIGEN_STRONG_INLINE const CwiseUnaryOp < internal::scalar_abs2_op < Scalar >, Derived > | cwiseAbs2 () const |
const CwiseUnaryOp < internal::scalar_sqrt_op < Scalar >, Derived > | cwiseSqrt () const |
const CwiseUnaryOp < internal::scalar_inverse_op < Scalar >, Derived > | cwiseInverse () const |
const CwiseUnaryOp < std::binder1st < std::equal_to< Scalar > >, Derived > | cwiseEqual (const Scalar &s) const |
EIGEN_STRONG_INLINE const CwiseUnaryOp < internal::scalar_abs_op < Scalar >, Derived > | abs () const |
EIGEN_STRONG_INLINE const CwiseUnaryOp < internal::scalar_abs2_op < Scalar >, Derived > | abs2 () const |
const CwiseUnaryOp < internal::scalar_exp_op < Scalar >, Derived > | exp () const |
const CwiseUnaryOp < internal::scalar_log_op < Scalar >, Derived > | log () const |
const CwiseUnaryOp < internal::scalar_sqrt_op < Scalar >, Derived > | sqrt () const |
const CwiseUnaryOp < internal::scalar_cos_op < Scalar >, Derived > | cos () const |
const CwiseUnaryOp < internal::scalar_sin_op < Scalar >, Derived > | sin () const |
const CwiseUnaryOp < internal::scalar_pow_op < Scalar >, Derived > | pow (const Scalar &exponent) const |
const CwiseUnaryOp < internal::scalar_inverse_op < Scalar >, Derived > | inverse () const |
const CwiseUnaryOp < internal::scalar_square_op < Scalar >, Derived > | square () const |
const CwiseUnaryOp < internal::scalar_cube_op < Scalar >, Derived > | cube () const |
template<typename CustomBinaryOp , typename OtherDerived > | |
EIGEN_STRONG_INLINE const CwiseBinaryOp< CustomBinaryOp, Derived, OtherDerived > | binaryExpr (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE const | EIGEN_CWISE_PRODUCT_RETURN_TYPE (Derived, OtherDerived) cwiseProduct(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < std::equal_to< Scalar > , Derived, OtherDerived > | cwiseEqual (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < std::not_equal_to< Scalar > , Derived, OtherDerived > | cwiseNotEqual (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE const CwiseBinaryOp < internal::scalar_min_op < Scalar >, Derived, OtherDerived > | cwiseMin (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE const CwiseBinaryOp < internal::scalar_max_op < Scalar >, Derived, OtherDerived > | cwiseMax (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE const CwiseBinaryOp < internal::scalar_quotient_op < Scalar >, Derived, OtherDerived > | cwiseQuotient (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE const | EIGEN_CWISE_PRODUCT_RETURN_TYPE (Derived, OtherDerived) operator*(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
template<typename OtherDerived > | |
EIGEN_STRONG_INLINE const CwiseBinaryOp < internal::scalar_quotient_op < Scalar >, Derived, OtherDerived > | operator/ (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_add_op < Scalar >, Derived > | operator+ (const Scalar &scalar) const |
const CwiseUnaryOp < internal::scalar_add_op < Scalar >, Derived > | operator- (const Scalar &scalar) const |
Derived & | operator= (const ArrayBase &other) |
Special case of the template operator=, in order to prevent the compiler from generating a default operator= (issue hit with g++ 4.1). | |
Derived & | operator+= (const Scalar &scalar) |
Derived & | operator-= (const Scalar &scalar) |
template<typename OtherDerived > | |
Derived & | operator+= (const ArrayBase< OtherDerived > &other) |
replaces *this by *this + other. | |
template<typename OtherDerived > | |
Derived & | operator-= (const ArrayBase< OtherDerived > &other) |
replaces *this by *this - other. | |
template<typename OtherDerived > | |
Derived & | operator*= (const ArrayBase< OtherDerived > &other) |
replaces *this by *this * other coefficient wise. | |
template<typename OtherDerived > | |
Derived & | operator/= (const ArrayBase< OtherDerived > &other) |
replaces *this by *this / other coefficient wise. | |
ArrayBase< Derived > & | array () |
const ArrayBase< Derived > & | array () const |
MatrixWrapper< Derived > | matrix () |
const MatrixWrapper< Derived > | matrix () const |
Protected Member Functions | |
ArrayBase () | |
template<typename OtherDerived > | |
Derived & | operator+= (const MatrixBase< OtherDerived > &mat) |
template<typename OtherDerived > | |
Derived & | operator-= (const MatrixBase< OtherDerived > &mat) |
Private Member Functions | |
ArrayBase (Index) | |
ArrayBase (Index, Index) | |
template<typename OtherDerived > | |
ArrayBase (const ArrayBase< OtherDerived > &) | |
Friends | |
const ScalarMultipleReturnType | operator* (const Scalar &scalar, const StorageBaseType &matrix) |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, Derived > | operator* (const std::complex< Scalar > &scalar, const StorageBaseType &matrix) |
const CwiseUnaryOp < internal::scalar_add_op < Scalar >, Derived > | operator+ (const Scalar &scalar, const EIGEN_CURRENT_STORAGE_BASE_CLASS< Derived > &other) |
const CwiseUnaryOp < internal::scalar_add_op < Scalar >, CwiseUnaryOp < internal::scalar_opposite_op < Scalar >, Derived > > | operator- (const Scalar &scalar, const EIGEN_CURRENT_STORAGE_BASE_CLASS< Derived > &other) |
Definition at line 165 of file ArrayBase.h.
ArrayBase< Derived >::ArrayBase | ( | const ArrayBase< OtherDerived > & | ) | [explicit, private] |
EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, Derived> ArrayBase< Derived >::abs | ( | ) | const [inline] |
*this
Example:
Output:
Definition at line 12 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, Derived> ArrayBase< Derived >::abs2 | ( | ) | const [inline] |
*this
Example:
Output:
Definition at line 25 of file ArrayBase.h.
Definition at line 153 of file ArrayBase.h.
Definition at line 154 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseBinaryOp<CustomBinaryOp, Derived, OtherDerived> ArrayBase< Derived >::binaryExpr | ( | const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > & | other, | |
const CustomBinaryOp & | func = CustomBinaryOp() | |||
) | const [inline] |
*this
and other *this
and other The template parameter CustomBinaryOp is the type of the functor of the custom operator (see class CwiseBinaryOp for an example)
Here is an example illustrating the use of custom functors:
Output:
Definition at line 58 of file ArrayBase.h.
internal::cast_return_type<Derived,const CwiseUnaryOp<internal::scalar_cast_op<typename internal::traits<Derived>::Scalar, NewType>, Derived> >::type ArrayBase< Derived >::cast | ( | ) | const [inline] |
The template parameter NewScalar is the type we are casting the scalars to.
Definition at line 108 of file ArrayBase.h.
ConjugateReturnType ArrayBase< Derived >::conjugate | ( | ) | const [inline] |
*this
.Definition at line 117 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_cos_op<Scalar>, Derived> ArrayBase< Derived >::cos | ( | ) | const [inline] |
Example:
Output:
Definition at line 77 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_cube_op<Scalar>, Derived> ArrayBase< Derived >::cube | ( | ) | const [inline] |
Example:
Output:
Definition at line 146 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>,Derived> ArrayBase< Derived >::cwiseAbs | ( | ) | const [inline] |
*this
Example:
Output:
Definition at line 37 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>,Derived> ArrayBase< Derived >::cwiseAbs2 | ( | ) | const [inline] |
*this
Example:
Output:
Definition at line 47 of file ArrayBase.h.
const CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >,Derived> ArrayBase< Derived >::cwiseEqual | ( | const Scalar & | s | ) | const [inline] |
*this
and a scalar s Definition at line 79 of file ArrayBase.h.
const CwiseBinaryOp<std::equal_to<Scalar>, Derived, OtherDerived> ArrayBase< Derived >::cwiseEqual | ( | const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > & | other | ) | const [inline] |
Example:
Output:
Definition at line 57 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>,Derived> ArrayBase< Derived >::cwiseInverse | ( | ) | const [inline] |
Example:
Output:
Definition at line 67 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, Derived, OtherDerived> ArrayBase< Derived >::cwiseMax | ( | const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > & | other | ) | const [inline] |
Example:
Output:
Definition at line 104 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, Derived, OtherDerived> ArrayBase< Derived >::cwiseMin | ( | const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > & | other | ) | const [inline] |
Example:
Output:
Definition at line 90 of file ArrayBase.h.
const CwiseBinaryOp<std::not_equal_to<Scalar>, Derived, OtherDerived> ArrayBase< Derived >::cwiseNotEqual | ( | const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > & | other | ) | const [inline] |
Example:
Output:
Definition at line 76 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, Derived, OtherDerived> ArrayBase< Derived >::cwiseQuotient | ( | const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > & | other | ) | const [inline] |
Example:
Output:
Definition at line 118 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>,Derived> ArrayBase< Derived >::cwiseSqrt | ( | ) | const [inline] |
Example:
Output:
Definition at line 57 of file ArrayBase.h.
EIGEN_STRONG_INLINE const ArrayBase< Derived >::EIGEN_CWISE_PRODUCT_RETURN_TYPE | ( | Derived | , | |
OtherDerived | ||||
) | const [inline] |
*this
and other Definition at line 7 of file ArrayBase.h.
EIGEN_STRONG_INLINE const ArrayBase< Derived >::EIGEN_CWISE_PRODUCT_RETURN_TYPE | ( | Derived | , | |
OtherDerived | ||||
) | const [inline] |
Example:
Output:
Definition at line 37 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_exp_op<Scalar>, Derived> ArrayBase< Derived >::exp | ( | ) | const [inline] |
const ImagReturnType ArrayBase< Derived >::imag | ( | ) | const [inline] |
*this
.Definition at line 132 of file ArrayBase.h.
NonConstImagReturnType ArrayBase< Derived >::imag | ( | ) | [inline] |
*this
.Definition at line 188 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, Derived> ArrayBase< Derived >::inverse | ( | ) | const [inline] |
Example:
Output:
Definition at line 120 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_log_op<Scalar>, Derived> ArrayBase< Derived >::log | ( | ) | const [inline] |
Example:
Output:
Definition at line 51 of file ArrayBase.h.
const MatrixWrapper<Derived> ArrayBase< Derived >::matrix | ( | ) | const [inline] |
Definition at line 159 of file ArrayBase.h.
MatrixWrapper<Derived> ArrayBase< Derived >::matrix | ( | ) | [inline] |
Definition at line 158 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, Derived> ArrayBase< Derived >::operator* | ( | const std::complex< Scalar > & | scalar | ) | const [inline] |
Overloaded for efficient real matrix times complex scalar value.
Definition at line 85 of file ArrayBase.h.
const ScalarMultipleReturnType ArrayBase< Derived >::operator* | ( | const RealScalar & | scalar | ) | const |
const ScalarMultipleReturnType ArrayBase< Derived >::operator* | ( | const Scalar & | scalar | ) | const [inline] |
*this
scaled by the scalar factor scalar Definition at line 65 of file ArrayBase.h.
EIGEN_STRONG_INLINE Derived & ArrayBase< Derived >::operator*= | ( | const ArrayBase< OtherDerived > & | other | ) |
replaces *this
by *this
* other coefficient wise.
*this
Definition at line 215 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_add_op<Scalar>, Derived> ArrayBase< Derived >::operator+ | ( | const Scalar & | scalar | ) | const [inline] |
*this
and other Example:
Output:
*this
and other Example:
Output:
Example:
Output:
Example:
Output:
Example:
Output:
Example:
Output:
Example:
Output:
Example:
Output:
*this
with each coeff incremented by the constant scalar Example:
Output:
Definition at line 116 of file ArrayBase.h.
Derived& ArrayBase< Derived >::operator+= | ( | const Scalar & | scalar | ) | [inline] |
Definition at line 136 of file ArrayBase.h.
EIGEN_STRONG_INLINE Derived & ArrayBase< Derived >::operator+= | ( | const ArrayBase< OtherDerived > & | other | ) |
replaces *this
by *this
+ other.
*this
Definition at line 201 of file ArrayBase.h.
Derived& ArrayBase< Derived >::operator+= | ( | const MatrixBase< OtherDerived > & | mat | ) | [inline, protected] |
Definition at line 173 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_opposite_op<typename internal::traits<Derived>::Scalar>,Derived> ArrayBase< Derived >::operator- | ( | ) | const [inline] |
*this
Definition at line 60 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_add_op<Scalar>, Derived> ArrayBase< Derived >::operator- | ( | const Scalar & | scalar | ) | const [inline] |
*this
with each coeff decremented by the constant scalar Example:
Output:
Definition at line 135 of file ArrayBase.h.
Derived& ArrayBase< Derived >::operator-= | ( | const MatrixBase< OtherDerived > & | mat | ) | [inline, protected] |
Definition at line 176 of file ArrayBase.h.
Derived& ArrayBase< Derived >::operator-= | ( | const Scalar & | scalar | ) | [inline] |
Definition at line 138 of file ArrayBase.h.
EIGEN_STRONG_INLINE Derived & ArrayBase< Derived >::operator-= | ( | const ArrayBase< OtherDerived > & | other | ) |
replaces *this
by *this
- other.
*this
Definition at line 187 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>, Derived> ArrayBase< Derived >::operator/ | ( | const Scalar & | scalar | ) | const [inline] |
*this
divided by the scalar value scalar Definition at line 77 of file ArrayBase.h.
EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, Derived, OtherDerived> ArrayBase< Derived >::operator/ | ( | const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > & | other | ) | const [inline] |
*this
and other Definition at line 19 of file ArrayBase.h.
EIGEN_STRONG_INLINE Derived & ArrayBase< Derived >::operator/= | ( | const ArrayBase< OtherDerived > & | other | ) |
replaces *this
by *this
/ other coefficient wise.
*this
Definition at line 229 of file ArrayBase.h.
Derived& ArrayBase< Derived >::operator= | ( | const ArrayBase< Derived > & | other | ) | [inline] |
Special case of the template operator=, in order to prevent the compiler from generating a default operator= (issue hit with g++ 4.1).
Definition at line 131 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_pow_op<Scalar>, Derived> ArrayBase< Derived >::pow | ( | const Scalar & | exponent | ) | const [inline] |
Example:
Output:
Definition at line 105 of file ArrayBase.h.
RealReturnType ArrayBase< Derived >::real | ( | ) | const [inline] |
*this
.Definition at line 126 of file ArrayBase.h.
NonConstRealReturnType ArrayBase< Derived >::real | ( | ) | [inline] |
*this
.Definition at line 182 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_sin_op<Scalar>, Derived> ArrayBase< Derived >::sin | ( | ) | const [inline] |
Example:
Output:
Definition at line 91 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, Derived> ArrayBase< Derived >::sqrt | ( | ) | const [inline] |
Example:
Output:
Definition at line 64 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_square_op<Scalar>, Derived> ArrayBase< Derived >::square | ( | ) | const [inline] |
Example:
Output:
Definition at line 133 of file ArrayBase.h.
const CwiseUnaryOp<CustomUnaryOp, Derived> ArrayBase< Derived >::unaryExpr | ( | const CustomUnaryOp & | func = CustomUnaryOp() |
) | const [inline] |
Apply a unary operator coefficient-wise.
[in] | func | Functor implementing the unary operator |
CustomUnaryOp | Type of func |
The function ptr_fun()
from the C++ standard library can be used to make functors out of normal functions.
Example:
Output:
Genuine functors allow for more possibilities, for instance it may contain a state.
Example:
Output:
Definition at line 155 of file ArrayBase.h.
const CwiseUnaryView<CustomViewOp, Derived> ArrayBase< Derived >::unaryViewExpr | ( | const CustomViewOp & | func = CustomViewOp() |
) | const [inline] |
The template parameter CustomUnaryOp is the type of the functor of the custom unary operator.
Example:
Output:
Definition at line 173 of file ArrayBase.h.
const ScalarMultipleReturnType operator* | ( | const Scalar & | scalar, | |
const StorageBaseType & | matrix | |||
) | [friend] |
Definition at line 92 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, Derived> operator* | ( | const std::complex< Scalar > & | scalar, | |
const StorageBaseType & | matrix | |||
) | [friend] |
Definition at line 96 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_add_op<Scalar>, Derived> operator+ | ( | const Scalar & | scalar, | |
const EIGEN_CURRENT_STORAGE_BASE_CLASS< Derived > & | other | |||
) | [friend] |
Definition at line 122 of file ArrayBase.h.
const CwiseUnaryOp<internal::scalar_add_op<Scalar>, CwiseUnaryOp<internal::scalar_opposite_op<Scalar>,Derived> > operator- | ( | const Scalar & | scalar, | |
const EIGEN_CURRENT_STORAGE_BASE_CLASS< Derived > & | other | |||
) | [friend] |
Definition at line 141 of file ArrayBase.h.
Page generated by Doxygen 1.7.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011 |