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

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

#include <Product.h>

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

Public Types

typedef Lhs_ Lhs
 
typedef Rhs_ Rhs
 
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 internal::ref_selector< Lhs >::type LhsNested
 
typedef internal::ref_selector< Rhs >::type RhsNested
 
typedef internal::remove_all_t< LhsNestedLhsNestedCleaned
 
typedef internal::remove_all_t< RhsNestedRhsNestedCleaned
 
using TransposeReturnType = typename internal::product_transpose_helper< Lhs, Rhs, Option >::TransposeType
 
using AdjointReturnType = typename internal::product_transpose_helper< Lhs, Rhs, Option >::AdjointType
 
- Public Types inherited from Eigen::ProductImpl< Lhs_, Rhs_, Option, internal::product_promote_storage_type< internal::traits< Lhs_ >::StorageKind, internal::traits< Rhs_ >::StorageKind, internal::product_type< Lhs_, Rhs_ >::ret >::ret >
typedef internal::generic_xpr_base< Product< Lhs_, Rhs_, Option >, MatrixXpr, internal::product_promote_storage_type< internal::traits< Lhs_ >::StorageKind, internal::traits< Rhs_ >::StorageKind, internal::product_type< Lhs_, Rhs_ >::ret >::ret >::type Base
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Product (const Lhs &lhs, const Rhs &rhs)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const LhsNestedCleanedlhs () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const RhsNestedCleanedrhs () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TransposeReturnType transpose () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE AdjointReturnType adjoint () const
 

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

Member Typedef Documentation

◆ AdjointReturnType

template<typename Lhs_ , typename Rhs_ , int Option>
using Eigen::Product< Lhs_, Rhs_, Option >::AdjointReturnType = typename internal::product_transpose_helper<Lhs, Rhs, Option>::AdjointType

◆ 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

◆ Lhs

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

◆ LhsNested

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

◆ LhsNestedCleaned

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

◆ Rhs

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

◆ RhsNested

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

◆ RhsNestedCleaned

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

◆ TransposeReturnType

template<typename Lhs_ , typename Rhs_ , int Option>
using Eigen::Product< Lhs_, Rhs_, Option >::TransposeReturnType = typename internal::product_transpose_helper<Lhs, Rhs, Option>::TransposeType

Constructor & Destructor Documentation

◆ Product()

template<typename Lhs_ , typename Rhs_ , int Option>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::Product< Lhs_, Rhs_, Option >::Product ( const Lhs lhs,
const Rhs rhs 
)
inline
222  : m_lhs(lhs), m_rhs(rhs) {
223  eigen_assert(lhs.cols() == rhs.rows() && "invalid matrix product" &&
224  "if you wanted a coeff-wise or a dot product use the respective explicit functions");
225  }
#define eigen_assert(x)
Definition: Macros.h:910
RhsNested m_rhs
Definition: Product.h:242
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const LhsNestedCleaned & lhs() const
Definition: Product.h:230
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const RhsNestedCleaned & rhs() const
Definition: Product.h:231
LhsNested m_lhs
Definition: Product.h:241

References eigen_assert, Eigen::Product< Lhs_, Rhs_, Option >::lhs(), and Eigen::Product< Lhs_, Rhs_, Option >::rhs().

Member Function Documentation

◆ adjoint()

template<typename Lhs_ , typename Rhs_ , int Option>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE AdjointReturnType Eigen::Product< Lhs_, Rhs_, Option >::adjoint ( ) const
inline
236  {
238  }
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE AdjointType run_adjoint(const Derived &derived)
Definition: Product.h:95

References Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, Kind >::run_adjoint().

◆ cols()

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

◆ lhs()

template<typename Lhs_ , typename Rhs_ , int Option>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const LhsNestedCleaned& Eigen::Product< Lhs_, Rhs_, Option >::lhs ( ) const
inline
230 { return m_lhs; }

References Eigen::Product< Lhs_, Rhs_, Option >::m_lhs.

Referenced by Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::operator=(), Eigen::Product< Lhs_, Rhs_, Option >::Product(), Eigen::internal::product_evaluator< Product< Lhs, Rhs, Options >, ProductTag, LhsShape, RhsShape >::product_evaluator(), Eigen::internal::product_evaluator< Product< Lhs, Rhs, AliasFreeProduct >, ProductTag, PermutationShape, SparseShape >::product_evaluator(), Eigen::internal::product_evaluator< Product< Lhs, Rhs, AliasFreeProduct >, ProductTag, SparseShape, PermutationShape >::product_evaluator(), Eigen::internal::product_evaluator< Product< Lhs, RhsView, DefaultProduct >, ProductTag, SparseShape, SparseSelfAdjointShape >::product_evaluator(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, Options >, internal::add_assign_op< Scalar, Scalar >, Dense2Dense, std::enable_if_t<(Options==DefaultProduct||Options==AliasFreeProduct)> >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, AliasFreeProduct >, internal::add_assign_op< typename DstXprType::Scalar, typename Product< Lhs, Rhs, AliasFreeProduct >::Scalar >, Sparse2Dense >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, Options >, internal::assign_op< Scalar, Scalar >, Dense2Dense, std::enable_if_t<(Options==DefaultProduct||Options==AliasFreeProduct)> >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, AliasFreeProduct >, internal::assign_op< typename DstXprType::Scalar, typename Product< Lhs, Rhs, AliasFreeProduct >::Scalar >, Sparse2Dense >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, Options >, internal::sub_assign_op< Scalar, Scalar >, Dense2Dense, std::enable_if_t<(Options==DefaultProduct||Options==AliasFreeProduct)> >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, AliasFreeProduct >, internal::sub_assign_op< typename DstXprType::Scalar, typename Product< Lhs, Rhs, AliasFreeProduct >::Scalar >, Sparse2Dense >::run(), Eigen::general_product_to_triangular_selector< MatrixType, ProductType, UpLo, true >::run(), Eigen::general_product_to_triangular_selector< MatrixType, ProductType, UpLo, false >::run(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixMatrix >::run_adjoint(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::PermutationMatrix >::run_adjoint(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixPermutation >::run_adjoint(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixMatrix >::run_transpose(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::PermutationMatrix >::run_transpose(), and Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixPermutation >::run_transpose().

◆ rhs()

template<typename Lhs_ , typename Rhs_ , int Option>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const RhsNestedCleaned& Eigen::Product< Lhs_, Rhs_, Option >::rhs ( ) const
inline
231 { return m_rhs; }

References Eigen::Product< Lhs_, Rhs_, Option >::m_rhs.

Referenced by Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >::operator=(), Eigen::Product< Lhs_, Rhs_, Option >::Product(), Eigen::internal::product_evaluator< Product< Lhs, Rhs, Options >, ProductTag, LhsShape, RhsShape >::product_evaluator(), Eigen::internal::product_evaluator< Product< Lhs, Rhs, AliasFreeProduct >, ProductTag, PermutationShape, SparseShape >::product_evaluator(), Eigen::internal::product_evaluator< Product< Lhs, Rhs, AliasFreeProduct >, ProductTag, SparseShape, PermutationShape >::product_evaluator(), Eigen::internal::product_evaluator< Product< LhsView, Rhs, DefaultProduct >, ProductTag, SparseSelfAdjointShape, SparseShape >::product_evaluator(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, Options >, internal::add_assign_op< Scalar, Scalar >, Dense2Dense, std::enable_if_t<(Options==DefaultProduct||Options==AliasFreeProduct)> >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, AliasFreeProduct >, internal::add_assign_op< typename DstXprType::Scalar, typename Product< Lhs, Rhs, AliasFreeProduct >::Scalar >, Sparse2Dense >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, Options >, internal::assign_op< Scalar, Scalar >, Dense2Dense, std::enable_if_t<(Options==DefaultProduct||Options==AliasFreeProduct)> >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, AliasFreeProduct >, internal::assign_op< typename DstXprType::Scalar, typename Product< Lhs, Rhs, AliasFreeProduct >::Scalar >, Sparse2Dense >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, Options >, internal::sub_assign_op< Scalar, Scalar >, Dense2Dense, std::enable_if_t<(Options==DefaultProduct||Options==AliasFreeProduct)> >::run(), Eigen::internal::Assignment< DstXprType, Product< Lhs, Rhs, AliasFreeProduct >, internal::sub_assign_op< typename DstXprType::Scalar, typename Product< Lhs, Rhs, AliasFreeProduct >::Scalar >, Sparse2Dense >::run(), Eigen::general_product_to_triangular_selector< MatrixType, ProductType, UpLo, true >::run(), Eigen::general_product_to_triangular_selector< MatrixType, ProductType, UpLo, false >::run(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixMatrix >::run_adjoint(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::PermutationMatrix >::run_adjoint(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixPermutation >::run_adjoint(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixMatrix >::run_transpose(), Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::PermutationMatrix >::run_transpose(), and Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, TransposeProductEnum::MatrixPermutation >::run_transpose().

◆ rows()

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

◆ transpose()

template<typename Lhs_ , typename Rhs_ , int Option>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TransposeReturnType Eigen::Product< Lhs_, Rhs_, Option >::transpose ( ) const
inline
233  {
235  }
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TransposeType run_transpose(const Derived &derived)
Definition: Product.h:91

References Eigen::internal::product_transpose_helper< Lhs, Rhs, Option, Kind >::run_transpose().

Member Data Documentation

◆ m_lhs

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

◆ m_rhs

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

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