#include <ProductBase.h>
Public Types | |
typedef internal::remove_all < ActualLhsType >::type | _ActualLhsType |
typedef internal::remove_all < ActualRhsType >::type | _ActualRhsType |
typedef internal::remove_all < LhsNested >::type | _LhsNested |
typedef internal::remove_all < RhsNested >::type | _RhsNested |
typedef LhsBlasTraits::DirectLinearAccessType | ActualLhsType |
typedef RhsBlasTraits::DirectLinearAccessType | ActualRhsType |
typedef MatrixBase< Derived > | Base |
typedef Base::PlainObject | BasePlainObject |
typedef Matrix< Scalar, RowsAtCompileTime==1?1:Dynamic, ColsAtCompileTime==1?1:Dynamic, BasePlainObject::Options > | DynPlainObject |
typedef CoeffBasedProduct < LhsNested, RhsNested, 0 > | FullyLazyCoeffBaseProductType |
typedef internal::blas_traits < _LhsNested > | LhsBlasTraits |
typedef Lhs::Nested | LhsNested |
typedef internal::traits< Lhs > ::Scalar | LhsScalar |
typedef internal::blas_traits < _RhsNested > | RhsBlasTraits |
typedef Rhs::Nested | RhsNested |
typedef internal::traits< Rhs > ::Scalar | RhsScalar |
typedef internal::conditional <(BasePlainObject::SizeAtCompileTime==Dynamic)||(BasePlainObject::SizeAtCompileTime *int(sizeof(Scalar))< int(EIGEN_STACK_ALLOCATION_LIMIT)), BasePlainObject, DynPlainObject >::type PlainObject;ProductBase(const Lhs &a_lhs, const Rhs &a_rhs):m_lhs(a_lhs), m_rhs(a_rhs){eigen_assert(a_lhs.cols()==a_rhs.rows()&&"invalid matrix product"&&"if you wanted a coeff-wise or a dot product use the respective explicit functions");}inline Index rows() const {return m_lhs.rows();}inline Index cols() const {return m_rhs.cols();}template < typename Dest > inline void evalTo(Dest &dst) const {dst.setZero();scaleAndAddTo(dst, Scalar(1));}template< typename Dest > inline void addTo(Dest &dst) const {scaleAndAddTo(dst, Scalar(1));}template< typename Dest > inline void subTo(Dest &dst) const {scaleAndAddTo(dst, Scalar(-1));}template < typename Dest > inline void scaleAndAddTo(Dest &dst, const Scalar &alpha) const {derived().scaleAndAddTo(dst, alpha);}const _LhsNested &lhs() const {return m_lhs;}const _RhsNested &rhs() const {return m_rhs;}operator const PlainObject &() const {m_result.resize(m_lhs.rows(), m_rhs.cols());derived().evalTo(m_result);return m_result;}const Diagonal < const FullyLazyCoeffBaseProductType, 0 > diagonal() const {return FullyLazyCoeffBaseProductType(m_lhs, m_rhs);}template< int Index > const Diagonal < FullyLazyCoeffBaseProductType, Index > diagonal() const {return FullyLazyCoeffBaseProductType(m_lhs, m_rhs);}const Diagonal < FullyLazyCoeffBaseProductType, Dynamic > diagonal(Index index) const {return FullyLazyCoeffBaseProductType(m_lhs, m_rhs).diagonal(index);}typename Base::CoeffReturnType coeff(Index row, Index col) const {EIGEN_STATIC_ASSERT_SIZE_1x1(Derived) eigen_assert(this-> | rows () = = 1 && this->cols() == 1) |
Public Member Functions | |
return result | coeff (row, col) |
Base::CoeffReturnType | coeff (Index i) const |
const Scalar & | coeffRef (Index row, Index col) const |
const Scalar & | coeffRef (Index i) const |
Public Attributes | |
Matrix< Scalar, 1, 1 > | result = *this |
Protected Attributes | |
LhsNested | m_lhs |
PlainObject | m_result |
RhsNested | m_rhs |
Definition at line 63 of file ProductBase.h.
typedef internal::remove_all<ActualLhsType>::type Eigen::ProductBase< Derived, Lhs, Rhs >::_ActualLhsType |
Definition at line 73 of file ProductBase.h.
typedef internal::remove_all<ActualRhsType>::type Eigen::ProductBase< Derived, Lhs, Rhs >::_ActualRhsType |
Definition at line 80 of file ProductBase.h.
typedef internal::remove_all<LhsNested>::type Eigen::ProductBase< Derived, Lhs, Rhs >::_LhsNested |
Definition at line 70 of file ProductBase.h.
typedef internal::remove_all<RhsNested>::type Eigen::ProductBase< Derived, Lhs, Rhs >::_RhsNested |
Definition at line 77 of file ProductBase.h.
typedef LhsBlasTraits::DirectLinearAccessType Eigen::ProductBase< Derived, Lhs, Rhs >::ActualLhsType |
Definition at line 72 of file ProductBase.h.
typedef RhsBlasTraits::DirectLinearAccessType Eigen::ProductBase< Derived, Lhs, Rhs >::ActualRhsType |
Definition at line 79 of file ProductBase.h.
typedef MatrixBase<Derived> Eigen::ProductBase< Derived, Lhs, Rhs >::Base |
Reimplemented from Eigen::MatrixBase< Derived >.
Reimplemented in Eigen::ScaledProduct< NestedProduct >.
Definition at line 66 of file ProductBase.h.
typedef Base::PlainObject Eigen::ProductBase< Derived, Lhs, Rhs >::BasePlainObject |
Definition at line 89 of file ProductBase.h.
typedef Matrix<Scalar,RowsAtCompileTime==1?1:Dynamic,ColsAtCompileTime==1?1:Dynamic,BasePlainObject::Options> Eigen::ProductBase< Derived, Lhs, Rhs >::DynPlainObject |
Definition at line 90 of file ProductBase.h.
typedef CoeffBasedProduct<LhsNested, RhsNested, 0> Eigen::ProductBase< Derived, Lhs, Rhs >::FullyLazyCoeffBaseProductType |
Definition at line 84 of file ProductBase.h.
typedef internal::blas_traits<_LhsNested> Eigen::ProductBase< Derived, Lhs, Rhs >::LhsBlasTraits |
Definition at line 71 of file ProductBase.h.
typedef Lhs::Nested Eigen::ProductBase< Derived, Lhs, Rhs >::LhsNested |
Definition at line 69 of file ProductBase.h.
typedef internal::traits<Lhs>::Scalar Eigen::ProductBase< Derived, Lhs, Rhs >::LhsScalar |
Reimplemented in Eigen::GeneralProduct< Lhs, Rhs, GemmProduct >, and Eigen::GeneralProduct< Lhs, Rhs, GemvProduct >.
Definition at line 74 of file ProductBase.h.
typedef internal::blas_traits<_RhsNested> Eigen::ProductBase< Derived, Lhs, Rhs >::RhsBlasTraits |
Definition at line 78 of file ProductBase.h.
typedef Rhs::Nested Eigen::ProductBase< Derived, Lhs, Rhs >::RhsNested |
Definition at line 76 of file ProductBase.h.
typedef internal::traits<Rhs>::Scalar Eigen::ProductBase< Derived, Lhs, Rhs >::RhsScalar |
Reimplemented in Eigen::GeneralProduct< Lhs, Rhs, GemmProduct >, and Eigen::GeneralProduct< Lhs, Rhs, GemvProduct >.
Definition at line 81 of file ProductBase.h.
typedef internal::conditional<(BasePlainObject::SizeAtCompileTime==Dynamic) || (BasePlainObject::SizeAtCompileTime*int(sizeof(Scalar)) < int(EIGEN_STACK_ALLOCATION_LIMIT)), BasePlainObject, DynPlainObject>::type PlainObject; ProductBase(const Lhs& a_lhs, const Rhs& a_rhs) : m_lhs(a_lhs), m_rhs(a_rhs) { eigen_assert(a_lhs.cols() == a_rhs.rows() && "invalid matrix product" && "if you wanted a coeff-wise or a dot product use the respective explicit functions"); } inline Index rows() const { return m_lhs.rows(); } inline Index cols() const { return m_rhs.cols(); } template<typename Dest> inline void evalTo(Dest& dst) const { dst.setZero(); scaleAndAddTo(dst,Scalar(1)); } template<typename Dest> inline void addTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(1)); } template<typename Dest> inline void subTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(-1)); } template<typename Dest> inline void scaleAndAddTo(Dest& dst, const Scalar& alpha) const { derived().scaleAndAddTo(dst,alpha); } const _LhsNested& lhs() const { return m_lhs; } const _RhsNested& rhs() const { return m_rhs; } operator const PlainObject& () const { m_result.resize(m_lhs.rows(), m_rhs.cols()); derived().evalTo(m_result); return m_result; } const Diagonal<const FullyLazyCoeffBaseProductType,0> diagonal() const { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); } template<int Index> const Diagonal<FullyLazyCoeffBaseProductType,Index> diagonal() const { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); } const Diagonal<FullyLazyCoeffBaseProductType,Dynamic> diagonal(Index index) const { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs).diagonal(index); } typename Base::CoeffReturnType coeff(Index row, Index col) const { EIGEN_STATIC_ASSERT_SIZE_1x1(Derived) eigen_assert(this-> Eigen::ProductBase< Derived, Lhs, Rhs >::rows() = = 1 && this->cols() == 1) |
Definition at line 148 of file ProductBase.h.
return result Eigen::ProductBase< Derived, Lhs, Rhs >::coeff | ( | row | , |
col | |||
) |
Base::CoeffReturnType Eigen::ProductBase< Derived, Lhs, Rhs >::coeff | ( | Index | i | ) | const [inline] |
Definition at line 154 of file ProductBase.h.
const Scalar& Eigen::ProductBase< Derived, Lhs, Rhs >::coeffRef | ( | Index | row, |
Index | col | ||
) | const [inline] |
Definition at line 162 of file ProductBase.h.
const Scalar& Eigen::ProductBase< Derived, Lhs, Rhs >::coeffRef | ( | Index | i | ) | const [inline] |
Definition at line 169 of file ProductBase.h.
LhsNested Eigen::ProductBase< Derived, Lhs, Rhs >::m_lhs [protected] |
Definition at line 178 of file ProductBase.h.
PlainObject Eigen::ProductBase< Derived, Lhs, Rhs >::m_result [mutable, protected] |
Definition at line 181 of file ProductBase.h.
RhsNested Eigen::ProductBase< Derived, Lhs, Rhs >::m_rhs [protected] |
Definition at line 179 of file ProductBase.h.
Matrix<Scalar,1,1> Eigen::ProductBase< Derived, Lhs, Rhs >::result = *this |
Definition at line 149 of file ProductBase.h.