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>
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 EIGEN_DEVICE_FUNC Index rows() const
Expression of the product of two arbitrary matrices or vectors.
A versatible sparse matrix representation.
Product< Lhs, Rhs, AliasFreeProduct > SrcXprType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const AbsReturnType abs() const
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 const LhsNestedCleaned & lhs() 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.
Expression of a dense or sparse matrix with zero or too small values removed.
const Product< Derived, OtherDerived > operator*(const DiagonalBase< OtherDerived > &other) const
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)
Product< Lhs, Rhs, AliasFreeProduct > SrcXprType
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)
const Derived & derived() const
storage_kind_to_shape< typename traits< T >::StorageKind >::Shape Shape
static void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op< typename DstXprType::Scalar, typename SrcXprType::Scalar > &)
const internal::remove_all< MatrixTypeNested >::type & nestedExpression() const
SparseView< Product< Lhs, Rhs, Options > > XprType
RealScalar epsilon() const
void run(Expr &expr, Dev &dev)
EIGEN_DEVICE_FUNC const RhsNestedCleaned & rhs() const
EIGEN_DEVICE_FUNC Index cols() const
unary_evaluator(const XprType &xpr)