10 #ifndef EIGEN_SPARSEPRODUCT_H    11 #define EIGEN_SPARSEPRODUCT_H    26 template<
typename Derived>
    27 template<
typename OtherDerived>
    28 inline const Product<Derived,OtherDerived,AliasFreeProduct>
    37 template<
typename Lhs, 
typename Rhs, 
int ProductType>
    40   template<
typename Dest>
    41   static void evalTo(Dest& dst, 
const Lhs& lhs, 
const Rhs& rhs)
    47   template<
typename Dest,
typename ActualLhs>
    52     LhsNested lhsNested(lhs);
    53     RhsNested rhsNested(rhs);
    59   template<
typename Dest>
    62     addTo(dst, -lhs, rhs);
    68   template<
typename Dest>
    73     LhsNested lhsNested(lhs);
    74     RhsNested rhsNested(rhs);
    80   template<
typename Dest>
    89 template<
typename Lhs, 
typename Rhs, 
int ProductType>
    95 template<
typename Lhs, 
typename Rhs, 
int ProductType>
   101 template< 
typename DstXprType, 
typename Lhs, 
typename Rhs>
   109     if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
   110       dst.resize(dstRows, dstCols);
   117 template< 
typename DstXprType, 
typename Lhs, 
typename Rhs>
   128 template< 
typename DstXprType, 
typename Lhs, 
typename Rhs>
   138 template<
typename Lhs, 
typename Rhs, 
int Options>
   140  : 
public evaluator<typename Product<Lhs, Rhs, DefaultProduct>::PlainObject>
   147     : m_result(xpr.rows(), xpr.cols())
   150     ::new (static_cast<Base*>(
this)) Base(m_result);
   169 #endif // EIGEN_SPARSEPRODUCT_H static void addTo(Dest &dst, const ActualLhs &lhs, const Rhs &rhs, typename enable_if< is_same< typename evaluator_traits< Dest >::Shape, DenseShape >::value, int *>::type *=0)
Expression of the product of two arbitrary matrices or vectors. 
EIGEN_DEVICE_FUNC const LhsNestedCleaned & lhs() const
Product< Lhs, Rhs, AliasFreeProduct > SrcXprType
static void evalTo(Dest &dst, const Lhs &lhs, const Rhs &rhs)
evaluator< PlainObject > Base
static void evalTo(Dest &dst, const Lhs &lhs, const Rhs &rhs, DenseShape)
EIGEN_DEVICE_FUNC Index rows() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const AbsReturnType abs() const
static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op< typename DstXprType::Scalar, typename SrcXprType::Scalar > &)
static void evalTo(Dest &dst, const Lhs &lhs, const Rhs &rhs, SparseShape)
static void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op< typename DstXprType::Scalar, typename SrcXprType::Scalar > &)
Base class of any sparse matrices or sparse expressions. 
XprType::PlainObject PlainObject
Product< Lhs, Rhs, AliasFreeProduct > SrcXprType
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API. 
static void subTo(Dest &dst, const Lhs &lhs, const Rhs &rhs, typename enable_if< is_same< typename evaluator_traits< Dest >::Shape, DenseShape >::value, int *>::type *=0)
Product< Lhs, Rhs, AliasFreeProduct > SrcXprType
const Product< Derived, OtherDerived > operator*(const DiagonalBase< OtherDerived > &other) const
EIGEN_DEVICE_FUNC Index cols() const
storage_kind_to_shape< typename traits< T >::StorageKind >::Shape Shape
const Derived & derived() const
static void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op< typename DstXprType::Scalar, typename SrcXprType::Scalar > &)
RealScalar epsilon() const
SparseView< Product< Lhs, Rhs, Options > > XprType
const internal::remove_all< MatrixTypeNested >::type & nestedExpression() const
unary_evaluator(const XprType &xpr)
EIGEN_DEVICE_FUNC const RhsNestedCleaned & rhs() const