10 #ifndef EIGEN_SPARSEPRODUCT_H 11 #define EIGEN_SPARSEPRODUCT_H 26 template<
typename Derived>
27 template<
typename OtherDerived>
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>
150 ::new (static_cast<Base*>(
this)) Base(m_result);
169 #endif // EIGEN_SPARSEPRODUCT_H Expression of the product of two arbitrary matrices or vectors.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const
A versatible sparse matrix representation.
Product< Lhs, Rhs, AliasFreeProduct > SrcXprType
Namespace containing all symbols from the Eigen library.
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
ProductLieGroup< Point2, Pose2 > Product
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
unary_evaluator(const XprType &xpr)