Public Types | Public Member Functions | Protected Attributes | List of all members
Product< Lhs, Rhs, ProductMode > Class Template Reference

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
 
- Public Types inherited from MatrixBase< Product< LhsNested, RhsNested, ProductMode > >
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
 
- Public Member Functions inherited from MatrixBase< Product< LhsNested, RhsNested, ProductMode > >
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 Public Member Functions inherited from MatrixBase< Product< LhsNested, RhsNested, ProductMode > >
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 ()
 
- Protected Member Functions inherited from MatrixBase< Product< LhsNested, RhsNested, ProductMode > >
 MatrixBase ()
 

Detailed Description

template<typename Lhs, typename Rhs, int ProductMode>
class Eigen::Product< Lhs, Rhs, ProductMode >

Expression of the product of two matrices.

Parameters
LhsNestedthe type used to store the left-hand side
RhsNestedthe type used to store the right-hand side
ProductModethe 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.

See Also
ProductReturnType, MatrixBase::operator*(const MatrixBase<OtherDerived>&)

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