Expression of the product of two matrices. More...
Public Types | |
enum | { LhsNestedFlags, RhsNestedFlags } |
typedef ei_cleantype < LhsNestedX >::type | _LhsNestedX |
typedef ei_cleantype < RhsNestedX >::type | _RhsNestedX |
typedef ei_nested< _LhsNested, _RhsNested::ColsAtCompileTime > ::type | LhsNestedX |
typedef ei_nested< _RhsNested, _LhsNested::RowsAtCompileTime > ::type | RhsNestedX |
![]() | |
enum |
Public Member Functions | |
template<typename DestDerived > | |
void | _cacheFriendlyEvalAndAdd (DestDerived &res) const |
bool | _useCacheFriendlyProduct () const |
const Scalar | coeff (int row, int col) const |
const Scalar | coeff (int index) const |
int | cols () const |
const _LhsNested & | lhs () const |
template<int LoadMode> | |
const PacketScalar | packet (int row, int col) const |
template<typename Lhs , typename Rhs > | |
Product (const Lhs &lhs, const Rhs &rhs) | |
const _RhsNested & | rhs () const |
int | rows () const |
![]() | |
const AdjointReturnType | adjoint () const |
bool | all (void) const |
bool | any (void) const |
const DiagonalMatrix< Product < LhsNested, RhsNested, ProductMode > > | asDiagonal () const |
const CwiseBinaryOp < CustomBinaryOp, Product < LhsNested, RhsNested, ProductMode >, OtherDerived > | binaryExpr (const MatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode > >::Type | block (int startRow, int startCol, int blockRows, int blockCols) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode > >::Type | block (int startRow, int startCol, int blockRows, int blockCols) const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, BlockRows, BlockCols >::Type | block (int startRow, int startCol) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, BlockRows, BlockCols >::Type | block (int startRow, int startCol) const |
const CwiseUnaryOp < ei_scalar_cast_op< typename ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar, NewType >, Product < LhsNested, RhsNested, ProductMode > > | cast () const |
const Scalar | coeff (int row, int col) const |
const Scalar | coeff (int index) const |
Scalar & | coeffRef (int row, int col) |
Scalar & | coeffRef (int index) |
ColXpr | col (int i) |
const ColXpr | col (int i) const |
int | cols () const |
const PartialRedux< Product < LhsNested, RhsNested, ProductMode >, Vertical > | colwise () const |
void | computeInverse (MatrixBase< ResultType > *result) const |
ConjugateReturnType | conjugate () const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode > >::Type | corner (CornerType type, int cRows, int cCols) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode > >::Type | corner (CornerType type, int cRows, int cCols) const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, CRows, CCols > ::Type | corner (CornerType type) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, CRows, CCols > ::Type | corner (CornerType type) const |
int | count () const |
PlainMatrixType | cross (const MatrixBase< OtherDerived > &other) const |
const Cwise< Product < LhsNested, RhsNested, ProductMode > > | cwise () const |
Cwise< Product< LhsNested, RhsNested, ProductMode > > | cwise () |
Scalar | determinant () const |
DiagonalCoeffs< Product < LhsNested, RhsNested, ProductMode > > | diagonal () |
const DiagonalCoeffs< Product < LhsNested, RhsNested, ProductMode > > | diagonal () const |
Scalar | dot (const MatrixBase< OtherDerived > &other) const |
EigenvaluesReturnType | eigenvalues () const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Dynamic > ::SubVectorType | end (int size) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Dynamic > ::SubVectorType | end (int size) const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Size > ::SubVectorType | end () |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Size > ::SubVectorType | end () const |
Matrix< Scalar, 3, 1 > | eulerAngles (int a0, int a1, int a2) const |
const ei_eval< Product < LhsNested, RhsNested, ProductMode > >::type | eval () const |
void | fill (const Scalar &value) |
const WithFormat< Product < LhsNested, RhsNested, ProductMode > > | format (const IOFormat &fmt) const |
const ImagReturnType | imag () const |
int | innerSize () const |
const PlainMatrixType | inverse () const |
bool | isApprox (const MatrixBase< OtherDerived > &other, RealScalar prec=precision< Scalar >()) const |
bool | isApproxToConstant (const Scalar &value, RealScalar prec=precision< Scalar >()) const |
bool | isConstant (const Scalar &value, RealScalar prec=precision< Scalar >()) const |
bool | isDiagonal (RealScalar prec=precision< Scalar >()) const |
bool | isIdentity (RealScalar prec=precision< Scalar >()) const |
bool | isLowerTriangular (RealScalar prec=precision< Scalar >()) const |
bool | isMuchSmallerThan (const RealScalar &other, RealScalar prec=precision< Scalar >()) const |
bool | isMuchSmallerThan (const MatrixBase< OtherDerived > &other, RealScalar prec=precision< Scalar >()) const |
bool | isOnes (RealScalar prec=precision< Scalar >()) const |
bool | isOrthogonal (const MatrixBase< OtherDerived > &other, RealScalar prec=precision< Scalar >()) const |
bool | isUnitary (RealScalar prec=precision< Scalar >()) const |
bool | isUpperTriangular (RealScalar prec=precision< Scalar >()) const |
bool | isVector () const |
bool | isZero (RealScalar prec=precision< Scalar >()) const |
const Flagged< Product < LhsNested, RhsNested, ProductMode > , 0, EvalBeforeNestingBit|EvalBeforeAssigningBit > | lazy () const |
Product< LhsNested, RhsNested, ProductMode > & | lazyAssign (const SparseProduct< Derived1, Derived2, SparseTimeDenseProduct > &product) |
Product< LhsNested, RhsNested, ProductMode > & | lazyAssign (const SparseProduct< Derived1, Derived2, DenseTimeSparseProduct > &product) |
const LDLT< PlainMatrixType > | ldlt () const |
const LLT< PlainMatrixType > | llt () const |
RealScalar | lpNorm () const |
const LU< PlainMatrixType > | lu () const |
const Flagged< Product < LhsNested, RhsNested, ProductMode >, Added, 0 > | marked () const |
ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar | maxCoeff () const |
ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar | maxCoeff (int *row, int *col) const |
ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar | maxCoeff (int *index) const |
ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar | minCoeff () const |
ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar | minCoeff (int *row, int *col) const |
ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar | minCoeff (int *index) const |
Minor< Product< LhsNested, RhsNested, ProductMode > > | minor (int row, int col) |
const Minor< Product < LhsNested, RhsNested, ProductMode > > | minor (int row, int col) const |
const NestByValue< Product < LhsNested, RhsNested, ProductMode > > | nestByValue () const |
int | nonZeros () const |
RealScalar | norm () const |
void | normalize () |
const PlainMatrixType | normalized () const |
bool | operator!= (const MatrixBase< OtherDerived > &other) const |
const Scalar | operator() (int row, int col) const |
Scalar & | operator() (int row, int col) |
const Scalar | operator() (int index) const |
Scalar & | operator() (int index) |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) const |
const ProductReturnType < Product< LhsNested, RhsNested, ProductMode > , OtherDerived >::Type | operator* (const MatrixBase< OtherDerived > &other) const |
Product< LhsNested, RhsNested, ProductMode > & | operator*= (const Scalar &other) |
Product< LhsNested, RhsNested, ProductMode > & | operator*= (const MatrixBase< OtherDerived > &other) |
const CwiseBinaryOp < ei_scalar_sum_op< typename ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar >, Product < LhsNested, RhsNested, ProductMode >, OtherDerived > | operator+ (const MatrixBase< OtherDerived > &other) const |
Product< LhsNested, RhsNested, ProductMode > & | operator+= (const MatrixBase< OtherDerived > &other) |
Product< LhsNested, RhsNested, ProductMode > & | operator+= (const Flagged< Product< Lhs, Rhs, CacheFriendlyProduct >, 0, EvalBeforeNestingBit|EvalBeforeAssigningBit > &other) |
const CwiseUnaryOp < ei_scalar_opposite_op < typename ei_traits< Product < LhsNested, RhsNested, ProductMode > >::Scalar > , Product< LhsNested, RhsNested, ProductMode > > | operator- () const |
const CwiseBinaryOp < ei_scalar_difference_op < typename ei_traits< Product < LhsNested, RhsNested, ProductMode > >::Scalar > , Product< LhsNested, RhsNested, ProductMode > , OtherDerived > | operator- (const MatrixBase< OtherDerived > &other) const |
Product< LhsNested, RhsNested, ProductMode > & | operator-= (const MatrixBase< OtherDerived > &other) |
const CwiseUnaryOp < ei_scalar_quotient1_op < typename ei_traits< Product < LhsNested, RhsNested, ProductMode > >::Scalar > , Product< LhsNested, RhsNested, ProductMode > > | operator/ (const Scalar &scalar) const |
Product< LhsNested, RhsNested, ProductMode > & | operator/= (const Scalar &other) |
CommaInitializer< Product < LhsNested, RhsNested, ProductMode > > | operator<< (const Scalar &s) |
CommaInitializer< Product < LhsNested, RhsNested, ProductMode > > | operator<< (const MatrixBase< OtherDerived > &other) |
Product< LhsNested, RhsNested, ProductMode > & | operator= (const MatrixBase< OtherDerived > &other) |
Product< LhsNested, RhsNested, ProductMode > & | operator= (const MatrixBase &other) |
bool | operator== (const MatrixBase< OtherDerived > &other) const |
const Scalar | operator[] (int index) const |
Scalar & | operator[] (int index) |
RealScalar | operatorNorm () const |
int | outerSize () const |
PacketScalar | packet (int row, int col) const |
PacketScalar | packet (int index) const |
Part< Product< LhsNested, RhsNested, ProductMode >, Mode > | part () |
const Part< Product< LhsNested, RhsNested, ProductMode >, Mode > | part () const |
const QR< PlainMatrixType > | qr () const |
const RealReturnType | real () const |
ei_result_of< BinaryOp(typename ei_traits< Product< LhsNested, RhsNested, ProductMode > >::Scalar)>::type | redux (const BinaryOp &func) const |
RowXpr | row (int i) |
const RowXpr | row (int i) const |
int | rows () const |
const PartialRedux< Product < LhsNested, RhsNested, ProductMode >, Horizontal > | rowwise () const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode > >::SubVectorType | segment (int start, int size) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode > >::SubVectorType | segment (int start, int size) const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Size > ::SubVectorType | segment (int start) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Size > ::SubVectorType | segment (int start) const |
const Select< Product < LhsNested, RhsNested, ProductMode >, ThenDerived, ElseDerived > | select (const MatrixBase< ThenDerived > &thenMatrix, const MatrixBase< ElseDerived > &elseMatrix) const |
const Select< Product < LhsNested, RhsNested, ProductMode >, ThenDerived, NestByValue< typename ThenDerived::ConstantReturnType > > | select (const MatrixBase< ThenDerived > &thenMatrix, typename ThenDerived::Scalar elseScalar) const |
const Select< Product < LhsNested, RhsNested, ProductMode >, NestByValue < typename ElseDerived::ConstantReturnType > , ElseDerived > | select (typename ElseDerived::Scalar thenScalar, const MatrixBase< ElseDerived > &elseMatrix) const |
Product< LhsNested, RhsNested, ProductMode > & | setConstant (const Scalar &value) |
Product< LhsNested, RhsNested, ProductMode > & | setIdentity () |
Product< LhsNested, RhsNested, ProductMode > & | setOnes () |
Product< LhsNested, RhsNested, ProductMode > & | setRandom () |
Product< LhsNested, RhsNested, ProductMode > & | setZero () |
int | size () const |
ei_plain_matrix_type_column_major < OtherDerived >::type | solveTriangular (const MatrixBase< OtherDerived > &other) const |
void | solveTriangularInPlace (const MatrixBase< OtherDerived > &other) const |
RealScalar | squaredNorm () const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Dynamic > ::SubVectorType | start (int size) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Dynamic > ::SubVectorType | start (int size) const |
BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Size > ::SubVectorType | start (void) |
const BlockReturnType< Product < LhsNested, RhsNested, ProductMode >, Size > ::SubVectorType | start () const |
int | stride (void) const |
Scalar | sum () const |
SVD< PlainMatrixType > | svd () const |
void | swap (const MatrixBase< OtherDerived > &other) |
Scalar | trace () const |
Eigen::Transpose< Product < LhsNested, RhsNested, ProductMode > > | transpose () |
const Eigen::Transpose < Product< LhsNested, RhsNested, ProductMode > > | transpose () const |
void | transposeInPlace () |
const CwiseUnaryOp < CustomUnaryOp, Product < LhsNested, RhsNested, ProductMode > > | unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const |
PlainMatrixType | unitOrthogonal (void) const |
void | visit (Visitor &func) const |
const Scalar | w () const |
Scalar & | w () |
void | writePacket (int row, int col, const PacketScalar &x) |
void | writePacket (int index, const PacketScalar &x) |
const Scalar | x () const |
Scalar & | x () |
const Scalar | y () const |
Scalar & | y () |
const Scalar | z () const |
Scalar & | z () |
Protected Attributes | |
const LhsNested | m_lhs |
const RhsNested | m_rhs |
Additional Inherited Members | |
![]() | |
static const ConstantReturnType | Constant (int rows, int cols, const Scalar &value) |
static const ConstantReturnType | Constant (int size, const Scalar &value) |
static const ConstantReturnType | Constant (const Scalar &value) |
static const IdentityReturnType | Identity () |
static const IdentityReturnType | Identity (int rows, int cols) |
static const CwiseNullaryOp < CustomNullaryOp, Product < LhsNested, RhsNested, ProductMode > > | NullaryExpr (int rows, int cols, const CustomNullaryOp &func) |
static const CwiseNullaryOp < CustomNullaryOp, Product < LhsNested, RhsNested, ProductMode > > | NullaryExpr (int size, const CustomNullaryOp &func) |
static const CwiseNullaryOp < CustomNullaryOp, Product < LhsNested, RhsNested, ProductMode > > | NullaryExpr (const CustomNullaryOp &func) |
static const ConstantReturnType | Ones (int rows, int cols) |
static const ConstantReturnType | Ones (int size) |
static const ConstantReturnType | Ones () |
static const CwiseNullaryOp < ei_scalar_random_op< Scalar > , Product< LhsNested, RhsNested, ProductMode > > | Random (int rows, int cols) |
static const CwiseNullaryOp < ei_scalar_random_op< Scalar > , Product< LhsNested, RhsNested, ProductMode > > | Random (int size) |
static const CwiseNullaryOp < ei_scalar_random_op< Scalar > , Product< LhsNested, RhsNested, ProductMode > > | Random () |
static const BasisReturnType | Unit (int size, int i) |
static const BasisReturnType | Unit (int i) |
static const BasisReturnType | UnitW () |
static const BasisReturnType | UnitX () |
static const BasisReturnType | UnitY () |
static const BasisReturnType | UnitZ () |
static const ConstantReturnType | Zero (int rows, int cols) |
static const ConstantReturnType | Zero (int size) |
static const ConstantReturnType | Zero () |
![]() | |
MatrixBase () |
Expression of the product of two matrices.
LhsNested | the type used to store the left-hand side |
RhsNested | the type used to store the right-hand side |
ProductMode | the type of the product |
This class represents an expression of the product of two matrices. It is the return type of the operator* between matrices. Its template arguments are determined automatically by ProductReturnType. Therefore, Product should never be used direclty. To determine the result type of a function which involves a matrix product, use ProductReturnType::Type.