Eigen::Product< Lhs_, Rhs_, Option > Class Template Reference

Expression of the product of two arbitrary matrices or vectors. More...

+ Inheritance diagram for Eigen::Product< Lhs_, Rhs_, Option >:

Public Types

typedef ProductImpl< Lhs, Rhs, Option, typename internal::product_promote_storage_type< typename internal::traits< Lhs >::StorageKind, typename internal::traits< Rhs >::StorageKind, internal::product_type< Lhs, Rhs >::ret >::ret >::Base Base
 
typedef Lhs_ Lhs
 
typedef internal::ref_selector< Lhs >::type LhsNested
 
typedef internal::remove_all_t< LhsNestedLhsNestedCleaned
 
typedef Rhs_ Rhs
 
typedef internal::ref_selector< Rhs >::type RhsNested
 
typedef internal::remove_all_t< RhsNestedRhsNestedCleaned
 

Public Member Functions

EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
const LhsNestedCleanedlhs () const
 
 Product (const Lhs &lhs, const Rhs &rhs)
 
const RhsNestedCleanedrhs () const
 
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 

Protected Attributes

LhsNested m_lhs
 
RhsNested m_rhs
 

Detailed Description

template<typename Lhs_, typename Rhs_, int Option>
class Eigen::Product< Lhs_, Rhs_, Option >

Expression of the product of two arbitrary matrices or vectors.

Template Parameters
Lhs_the type of the left-hand side expression
Rhs_the type of the right-hand side expression

This class represents an expression of the product of two arbitrary matrices.

The other template parameters are:

Template Parameters
Optioncan be DefaultProduct, AliasFreeProduct, or LazyProduct

Definition at line 73 of file Product.h.

Member Typedef Documentation

◆ Base

template<typename Lhs_ , typename Rhs_ , int Option>
typedef ProductImpl< Lhs, Rhs, Option, typename internal::product_promote_storage_type<typename internal::traits<Lhs>::StorageKind, typename internal::traits<Rhs>::StorageKind, internal::product_type<Lhs,Rhs>::ret>::ret>::Base Eigen::Product< Lhs_, Rhs_, Option >::Base

Definition at line 87 of file Product.h.

◆ Lhs

template<typename Lhs_ , typename Rhs_ , int Option>
typedef Lhs_ Eigen::Product< Lhs_, Rhs_, Option >::Lhs

Definition at line 80 of file Product.h.

◆ LhsNested

template<typename Lhs_ , typename Rhs_ , int Option>
typedef internal::ref_selector<Lhs>::type Eigen::Product< Lhs_, Rhs_, Option >::LhsNested

Definition at line 90 of file Product.h.

◆ LhsNestedCleaned

template<typename Lhs_ , typename Rhs_ , int Option>
typedef internal::remove_all_t<LhsNested> Eigen::Product< Lhs_, Rhs_, Option >::LhsNestedCleaned

Definition at line 92 of file Product.h.

◆ Rhs

template<typename Lhs_ , typename Rhs_ , int Option>
typedef Rhs_ Eigen::Product< Lhs_, Rhs_, Option >::Rhs

Definition at line 81 of file Product.h.

◆ RhsNested

template<typename Lhs_ , typename Rhs_ , int Option>
typedef internal::ref_selector<Rhs>::type Eigen::Product< Lhs_, Rhs_, Option >::RhsNested

Definition at line 91 of file Product.h.

◆ RhsNestedCleaned

template<typename Lhs_ , typename Rhs_ , int Option>
typedef internal::remove_all_t<RhsNested> Eigen::Product< Lhs_, Rhs_, Option >::RhsNestedCleaned

Definition at line 93 of file Product.h.

Constructor & Destructor Documentation

◆ Product()

template<typename Lhs_ , typename Rhs_ , int Option>
Eigen::Product< Lhs_, Rhs_, Option >::Product ( const Lhs lhs,
const Rhs rhs 
)
inline

Definition at line 96 of file Product.h.

96  : m_lhs(lhs), m_rhs(rhs)
97  {
98  eigen_assert(lhs.cols() == rhs.rows()
99  && "invalid matrix product"
100  && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
101  }
#define eigen_assert(x)
Definition: Macros.h:902
const LhsNestedCleaned & lhs() const
Definition: Product.h:109
RhsNested m_rhs
Definition: Product.h:116
const RhsNestedCleaned & rhs() const
Definition: Product.h:111
LhsNested m_lhs
Definition: Product.h:115

Member Function Documentation

◆ cols()

template<typename Lhs_ , typename Rhs_ , int Option>
EIGEN_CONSTEXPR Index Eigen::Product< Lhs_, Rhs_, Option >::cols ( void  ) const
inline

Definition at line 106 of file Product.h.

106 { return m_rhs.cols(); }

◆ lhs()

template<typename Lhs_ , typename Rhs_ , int Option>
const LhsNestedCleaned& Eigen::Product< Lhs_, Rhs_, Option >::lhs ( ) const
inline

Definition at line 109 of file Product.h.

109 { return m_lhs; }

◆ rhs()

template<typename Lhs_ , typename Rhs_ , int Option>
const RhsNestedCleaned& Eigen::Product< Lhs_, Rhs_, Option >::rhs ( ) const
inline

Definition at line 111 of file Product.h.

111 { return m_rhs; }

◆ rows()

template<typename Lhs_ , typename Rhs_ , int Option>
EIGEN_CONSTEXPR Index Eigen::Product< Lhs_, Rhs_, Option >::rows ( void  ) const
inline

Definition at line 104 of file Product.h.

104 { return m_lhs.rows(); }

Member Data Documentation

◆ m_lhs

template<typename Lhs_ , typename Rhs_ , int Option>
LhsNested Eigen::Product< Lhs_, Rhs_, Option >::m_lhs
protected

Definition at line 115 of file Product.h.

◆ m_rhs

template<typename Lhs_ , typename Rhs_ , int Option>
RhsNested Eigen::Product< Lhs_, Rhs_, Option >::m_rhs
protected

Definition at line 116 of file Product.h.


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