Expression of an array as a mathematical vector or matrix. More...
#include <ArrayWrapper.h>
Public Types | |
typedef internal::traits < MatrixWrapper < ExpressionType > >::Index | Index |
The type of indices. | |
typedef Matrix< typename internal::traits < MatrixWrapper < ExpressionType > >::Scalar, internal::traits < MatrixWrapper < ExpressionType > >::RowsAtCompileTime, internal::traits < MatrixWrapper < ExpressionType > >::ColsAtCompileTime, AutoAlign|(internal::traits < MatrixWrapper < ExpressionType > >::Flags &RowMajorBit?RowMajor:ColMajor), internal::traits < MatrixWrapper < ExpressionType > >::MaxRowsAtCompileTime, internal::traits < MatrixWrapper < ExpressionType > >::MaxColsAtCompileTime > | PlainObject |
The plain matrix type corresponding to this expression. | |
Public Member Functions | |
ArrayWrapper< MatrixWrapper < ExpressionType > > | array () |
const CwiseBinaryOp < CustomBinaryOp, const MatrixWrapper< ExpressionType > , const OtherDerived > | binaryExpr (const Eigen::MatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const |
Block< MatrixWrapper < ExpressionType > > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) |
const Block< const MatrixWrapper< ExpressionType > > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) const |
Block< MatrixWrapper < ExpressionType >, BlockRows, BlockCols > | block (Index startRow, Index startCol) |
const Block< const MatrixWrapper< ExpressionType > , BlockRows, BlockCols > | block (Index startRow, Index startCol) const |
Block< MatrixWrapper < ExpressionType > > | bottomLeftCorner (Index cRows, Index cCols) |
const Block< const MatrixWrapper< ExpressionType > > | bottomLeftCorner (Index cRows, Index cCols) const |
Block< MatrixWrapper < ExpressionType >, CRows, CCols > | bottomLeftCorner () |
const Block< const MatrixWrapper< ExpressionType > , CRows, CCols > | bottomLeftCorner () const |
Block< MatrixWrapper < ExpressionType > > | bottomRightCorner (Index cRows, Index cCols) |
const Block< const MatrixWrapper< ExpressionType > > | bottomRightCorner (Index cRows, Index cCols) const |
Block< MatrixWrapper < ExpressionType >, CRows, CCols > | bottomRightCorner () |
const Block< const MatrixWrapper< ExpressionType > , CRows, CCols > | bottomRightCorner () const |
RowsBlockXpr | bottomRows (Index n) |
ConstRowsBlockXpr | bottomRows (Index n) const |
NRowsBlockXpr< N >::Type | bottomRows () |
ConstNRowsBlockXpr< N >::Type | bottomRows () const |
internal::cast_return_type < MatrixWrapper < ExpressionType >, const CwiseUnaryOp < internal::scalar_cast_op < typename internal::traits < MatrixWrapper < ExpressionType > >::Scalar, NewType >, const MatrixWrapper < ExpressionType > > >::type | cast () const |
ColXpr | col (Index i) |
ConstColXpr | col (Index i) const |
ConjugateReturnType | conjugate () const |
const CwiseUnaryOp < internal::scalar_abs_op < Scalar >, const MatrixWrapper< ExpressionType > > | cwiseAbs () const |
const CwiseUnaryOp < internal::scalar_abs2_op < Scalar >, const MatrixWrapper< ExpressionType > > | cwiseAbs2 () const |
const CwiseBinaryOp < std::equal_to< Scalar > , const MatrixWrapper < ExpressionType >, const OtherDerived > | cwiseEqual (const Eigen::MatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < std::binder1st < std::equal_to< Scalar > >, const MatrixWrapper < ExpressionType > > | cwiseEqual (const Scalar &s) const |
const CwiseUnaryOp < internal::scalar_inverse_op < Scalar >, const MatrixWrapper< ExpressionType > > | cwiseInverse () const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const MatrixWrapper< ExpressionType > , const OtherDerived > | cwiseMax (const Eigen::MatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const MatrixWrapper< ExpressionType > , const ConstantReturnType > | cwiseMax (const Scalar &other) const |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const MatrixWrapper< ExpressionType > , const OtherDerived > | cwiseMin (const Eigen::MatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const MatrixWrapper< ExpressionType > , const ConstantReturnType > | cwiseMin (const Scalar &other) const |
const CwiseBinaryOp < std::not_equal_to< Scalar > , const MatrixWrapper < ExpressionType >, const OtherDerived > | cwiseNotEqual (const Eigen::MatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_quotient_op < Scalar >, const MatrixWrapper< ExpressionType > , const OtherDerived > | cwiseQuotient (const Eigen::MatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_sqrt_op < Scalar >, const MatrixWrapper< ExpressionType > > | cwiseSqrt () const |
Index | diagonalSize () const |
const | EIGEN_CWISE_PRODUCT_RETURN_TYPE (MatrixWrapper< ExpressionType >, OtherDerived) cwiseProduct(const Eigen |
EvalReturnType | eval () const |
const ImagReturnType | imag () const |
NonConstImagReturnType | imag () |
Index | innerSize () const |
ColsBlockXpr | leftCols (Index n) |
ConstColsBlockXpr | leftCols (Index n) const |
NColsBlockXpr< N >::Type | leftCols () |
ConstNColsBlockXpr< N >::Type | leftCols () const |
ColsBlockXpr | middleCols (Index startCol, Index numCols) |
ConstColsBlockXpr | middleCols (Index startCol, Index numCols) const |
NColsBlockXpr< N >::Type | middleCols (Index startCol) |
ConstNColsBlockXpr< N >::Type | middleCols (Index startCol) const |
RowsBlockXpr | middleRows (Index startRow, Index numRows) |
ConstRowsBlockXpr | middleRows (Index startRow, Index numRows) const |
NRowsBlockXpr< N >::Type | middleRows (Index startRow) |
ConstNRowsBlockXpr< N >::Type | middleRows (Index startRow) const |
Index | nonZeros () const |
bool | operator!= (const MatrixBase< OtherDerived > &other) const |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) const |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, const MatrixWrapper < ExpressionType > > | operator* (const std::complex< Scalar > &scalar) const |
const CwiseUnaryOp < internal::scalar_opposite_op < typename internal::traits < MatrixWrapper < ExpressionType > >::Scalar > , const MatrixWrapper < ExpressionType > > | operator- () const |
const CwiseUnaryOp < internal::scalar_quotient1_op < typename internal::traits < MatrixWrapper < ExpressionType > >::Scalar > , const MatrixWrapper < ExpressionType > > | operator/ (const Scalar &scalar) const |
bool | operator== (const MatrixBase< OtherDerived > &other) const |
Index | outerSize () const |
RealReturnType | real () const |
NonConstRealReturnType | real () |
void | resize (Index newSize) |
void | resize (Index nbRows, Index nbCols) |
ColsBlockXpr | rightCols (Index n) |
ConstColsBlockXpr | rightCols (Index n) const |
NColsBlockXpr< N >::Type | rightCols () |
ConstNColsBlockXpr< N >::Type | rightCols () const |
RowXpr | row (Index i) |
ConstRowXpr | row (Index i) const |
void | swap (const DenseBase< OtherDerived > &other, int=OtherDerived::ThisConstantIsPrivateInPlainObjectBase) |
void | swap (PlainObjectBase< OtherDerived > &other) |
Block< MatrixWrapper < ExpressionType > > | topLeftCorner (Index cRows, Index cCols) |
const Block< const MatrixWrapper< ExpressionType > > | topLeftCorner (Index cRows, Index cCols) const |
Block< MatrixWrapper < ExpressionType >, CRows, CCols > | topLeftCorner () |
const Block< const MatrixWrapper< ExpressionType > , CRows, CCols > | topLeftCorner () const |
Block< MatrixWrapper < ExpressionType > > | topRightCorner (Index cRows, Index cCols) |
const Block< const MatrixWrapper< ExpressionType > > | topRightCorner (Index cRows, Index cCols) const |
Block< MatrixWrapper < ExpressionType >, CRows, CCols > | topRightCorner () |
const Block< const MatrixWrapper< ExpressionType > , CRows, CCols > | topRightCorner () const |
RowsBlockXpr | topRows (Index n) |
ConstRowsBlockXpr | topRows (Index n) const |
NRowsBlockXpr< N >::Type | topRows () |
ConstNRowsBlockXpr< N >::Type | topRows () const |
const CwiseUnaryOp < CustomUnaryOp, const MatrixWrapper< ExpressionType > > | unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const |
Apply a unary operator coefficient-wise. | |
const CwiseUnaryView < CustomViewOp, const MatrixWrapper< ExpressionType > > | unaryViewExpr (const CustomViewOp &func=CustomViewOp()) const |
CoeffReturnType | value () const |
Expression of an array as a mathematical vector or matrix.
This class is the return type of ArrayBase::matrix(), and most of the time this is the only way it is use.
|
inherited |
The type of indices.
To change this, #define
the preprocessor symbol EIGEN_DEFAULT_DENSE_INDEX_TYPE
.
|
inherited |
The plain matrix type corresponding to this expression.
This is not necessarily exactly the return type of eval(). In the case of plain matrices, the return type of eval() is a const reference to a matrix, not a matrix! It is however guaranteed that the return type of eval() is either PlainObject or const PlainObject&.
|
inlineinherited |
|
inlineinherited |
*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:
(0.68,0.271) (0.823,-0.967) (-0.444,-0.687) (-0.27,0.998) (-0.211,0.435) (-0.605,-0.514) (0.108,-0.198) (0.0268,-0.563) (0.566,-0.717) (-0.33,-0.726) (-0.0452,-0.74) (0.904,0.0259) (0.597,0.214) (0.536,0.608) (0.258,-0.782) (0.832,0.678)
|
inlineinherited |
startRow | the first row in the block |
startCol | the first column in the block |
blockRows | the number of rows in the block |
blockCols | the number of columns in the block |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.block(1, 1, 2, 2): -6 1 -3 0 Now the matrix m is: 7 9 -5 -3 -2 0 0 0 6 0 0 9 6 6 3 9
|
inlineinherited |
This is the const version of block(Index,Index,Index,Index).
|
inlineinherited |
The template parameters BlockRows and BlockCols are the number of rows and columns in the block.
startRow | the first row in the block |
startCol | the first column in the block |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.block<2,2>(1,1): -6 1 -3 0 Now the matrix m is: 7 9 -5 -3 -2 0 0 0 6 0 0 9 6 6 3 9
|
inlineinherited |
This is the const version of block<>(Index, Index).
|
inlineinherited |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomLeftCorner(2, 2): 6 -3 6 6 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 0 0 0 9 0 0 3 9
|
inlineinherited |
This is the const version of bottomLeftCorner(Index, Index).
|
inlineinherited |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomLeftCorner<2,2>(): 6 -3 6 6 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 0 0 0 9 0 0 3 9
|
inlineinherited |
This is the const version of bottomLeftCorner<int, int>().
|
inlineinherited |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomRightCorner(2, 2): 0 9 3 9 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 6 -3 0 0 6 6 0 0
|
inlineinherited |
This is the const version of bottomRightCorner(Index, Index).
|
inlineinherited |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomRightCorner<2,2>(): 0 9 3 9 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 6 -3 0 0 6 6 0 0
|
inlineinherited |
This is the const version of bottomRightCorner<int, int>().
|
inlineinherited |
n | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.bottomRows(2): 6 -3 0 9 6 6 3 9 Now the array a is: 7 9 -5 -3 -2 -6 1 0 0 0 0 0 0 0 0 0
|
inlineinherited |
This is the const version of bottomRows(Index).
|
inlineinherited |
N | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.bottomRows<2>(): 6 -3 0 9 6 6 3 9 Now the array a is: 7 9 -5 -3 -2 -6 1 0 0 0 0 0 0 0 0 0
|
inlineinherited |
This is the const version of bottomRows<int>().
|
inlineinherited |
The template parameter NewScalar is the type we are casting the scalars to.
|
inlineinherited |
|
inlineinherited |
This is the const version of col().
|
inlineinherited |
*this
.
|
inlineinherited |
*this
Example:
Output:
2 4 6 5 1 0
|
inlineinherited |
*this
Example:
Output:
4 16 36 25 1 0
|
inlineinherited |
Example:
Output:
Comparing m with identity matrix: 1 1 0 1 Number of coefficients that are equal: 3
|
inlineinherited |
*this
and a scalar s
|
inlineinherited |
Example:
Output:
0.5 2 1 0.333 4 1
|
inlineinherited |
Example:
Output:
4 3 4
|
inlineinherited |
|
inlineinherited |
Example:
Output:
2 2 3
|
inlineinherited |
|
inlineinherited |
Example:
Output:
Comparing m with identity matrix: 0 0 1 0 Number of coefficients that are not equal: 1
|
inlineinherited |
Example:
Output:
0.5 1.5 1.33
|
inlineinherited |
Example:
Output:
1 1.41 2
|
inlineinherited |
|
inlineinherited |
Example:
Output:
a: 7 6 -3 -2 9 6 6 -6 -5 b: 1 -3 9 0 0 3 3 9 5 c: 7 -18 -27 0 0 18 18 -54 -25
|
inlineinherited |
Notice that in the case of a plain matrix or vector (not an expression) this function just returns a const reference, in order to avoid a useless copy.
|
inlineinherited |
*this
.
|
inlineinherited |
*this
.
|
inlineinherited |
|
inlineinherited |
n | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.leftCols(2): 7 9 -2 -6 6 -3 6 6 Now the array a is: 0 0 -5 -3 0 0 1 0 0 0 0 9 0 0 3 9
|
inlineinherited |
This is the const version of leftCols(Index).
|
inlineinherited |
N | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.leftCols<2>(): 7 9 -2 -6 6 -3 6 6 Now the array a is: 0 0 -5 -3 0 0 1 0 0 0 0 9 0 0 3 9
|
inlineinherited |
This is the const version of leftCols<int>().
startCol | the index of the first column in the block |
numCols | the number of columns in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(1..3,:) = -6 0 9 -3 3 3 6 -3 5 -5 0 -8 1 9 2
This is the const version of middleCols(Index,Index).
|
inlineinherited |
N | the number of columns in the block |
startCol | the index of the first column in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(:,1..3) = -6 0 9 -3 3 3 6 -3 5 -5 0 -8 1 9 2
|
inlineinherited |
This is the const version of middleCols<int>().
startRow | the index of the first row in the block |
numRows | the number of rows in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(2..3,:) = 6 6 -3 5 -8 6 -5 0 -8 6
This is the const version of middleRows(Index,Index).
|
inlineinherited |
N | the number of rows in the block |
startRow | the index of the first row in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(1..3,:) = -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6
|
inlineinherited |
This is the const version of middleRows<int>().
|
inlineinherited |
|
inlineinherited |
*this
and other are not exactly equal to each other.
|
inlineinherited |
*this
scaled by the scalar factor scalar
|
inlineinherited |
Overloaded for efficient real matrix times complex scalar value
|
inlineinherited |
*this
|
inlineinherited |
*this
divided by the scalar value scalar
|
inlineinherited |
*this
and other are all exactly equal.
|
inlineinherited |
|
inlineinherited |
*this
.
|
inlineinherited |
*this
.
|
inline |
Forwards the resizing request to the nested expression
Forwards the resizing request to the nested expression
|
inlineinherited |
n | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.rightCols(2): -5 -3 1 0 0 9 3 9 Now the array a is: 7 9 0 0 -2 -6 0 0 6 -3 0 0 6 6 0 0
|
inlineinherited |
This is the const version of rightCols(Index).
|
inlineinherited |
N | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.rightCols<2>(): -5 -3 1 0 0 9 3 9 Now the array a is: 7 9 0 0 -2 -6 0 0 6 -3 0 0 6 6 0 0
|
inlineinherited |
This is the const version of rightCols<int>().
|
inlineinherited |
|
inlineinherited |
This is the const version of row().
|
inlineinherited |
swaps *this with the expression other.
|
inlineinherited |
swaps *this with the matrix or array other.
|
inlineinherited |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topLeftCorner(2, 2): 7 9 -2 -6 Now the matrix m is: 0 0 -5 -3 0 0 1 0 6 -3 0 9 6 6 3 9
|
inlineinherited |
This is the const version of topLeftCorner(Index, Index).
|
inlineinherited |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topLeftCorner<2,2>(): 7 9 -2 -6 Now the matrix m is: 0 0 -5 -3 0 0 1 0 6 -3 0 9 6 6 3 9
|
inlineinherited |
This is the const version of topLeftCorner<int, int>().
|
inlineinherited |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topRightCorner(2, 2): -5 -3 1 0 Now the matrix m is: 7 9 0 0 -2 -6 0 0 6 -3 0 9 6 6 3 9
|
inlineinherited |
This is the const version of topRightCorner(Index, Index).
|
inlineinherited |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topRightCorner<2,2>(): -5 -3 1 0 Now the matrix m is: 7 9 0 0 -2 -6 0 0 6 -3 0 9 6 6 3 9
|
inlineinherited |
This is the const version of topRightCorner<int, int>().
|
inlineinherited |
n | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.topRows(2): 7 9 -5 -3 -2 -6 1 0 Now the array a is: 0 0 0 0 0 0 0 0 6 -3 0 9 6 6 3 9
|
inlineinherited |
This is the const version of topRows(Index).
|
inlineinherited |
N | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.topRows<2>(): 7 9 -5 -3 -2 -6 1 0 Now the array a is: 0 0 0 0 0 0 0 0 6 -3 0 9 6 6 3 9
|
inlineinherited |
This is the const version of topRows<int>().
|
inlineinherited |
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:
0.68 0.823 -0.444 -0.27 -0.211 -0.605 0.108 0.0268 0.566 -0.33 -0.0452 0.904 0.597 0.536 0.258 0.832 becomes: 0.68 0.823 0 0 0 0 0.108 0.0268 0.566 0 0 0.904 0.597 0.536 0.258 0.832
Genuine functors allow for more possibilities, for instance it may contain a state.
Example:
Output:
0.68 0.823 -0.444 -0.27 -0.211 -0.605 0.108 0.0268 0.566 -0.33 -0.0452 0.904 0.597 0.536 0.258 0.832 becomes: 0.5 0.5 -0.444 -0.27 -0.211 -0.5 0.108 0.0268 0.5 -0.33 -0.0452 0.5 0.5 0.5 0.258 0.5
|
inlineinherited |
The template parameter CustomUnaryOp is the type of the functor of the custom unary operator.
Example:
Output:
0.68 0.823 -0.444 -0.27 -0.211 -0.605 0.108 0.0268 0.566 -0.33 -0.0452 0.904 0.597 0.536 0.258 0.832 becomes: 0.5 0.5 -0.444 -0.27 -0.211 -0.5 0.108 0.0268 0.5 -0.33 -0.0452 0.5 0.5 0.5 0.258 0.5
|
inlineinherited |