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);
168 template<
typename Scalar,
int _Options,
typename _StorageIndex>
169 template<
typename Lhs,
typename Rhs>
181 #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.
A versatible sparse matrix representation.
Product< Lhs, Rhs, AliasFreeProduct > SrcXprType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Namespace containing all symbols from the Eigen library.
SparseMatrix & operator=(const SparseMatrix &other)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
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)
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.
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
ProductLieGroup< Point2, Pose2 > Product
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 > &)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const LhsNestedCleaned & lhs() const
Generic expression where a coefficient-wise unary operator is applied to an expression.
RealScalar epsilon() const
SparseView< Product< Lhs, Rhs, Options > > XprType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const RhsNestedCleaned & rhs() const
const internal::remove_all< MatrixTypeNested >::type & nestedExpression() const
unary_evaluator(const XprType &xpr)
void swap(scoped_array< T > &a, scoped_array< T > &b)