10 #ifndef EIGEN_SPARSE_CWISE_BINARY_OP_H
11 #define EIGEN_SPARSE_CWISE_BINARY_OP_H
38 template <
typename BinaryOp,
typename Lhs,
typename Rhs>
48 THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH)
61 template <
typename XprType>
64 template <
typename BinaryOp,
typename Lhs,
typename Rhs>
78 : m_lhsIter(aEval.m_lhsImpl, outer),
79 m_rhsIter(aEval.m_rhsImpl, outer),
80 m_functor(aEval.m_functor),
86 if (m_lhsIter && m_rhsIter && (m_lhsIter.index() == m_rhsIter.index())) {
87 m_id = m_lhsIter.
index();
88 m_value = m_functor(m_lhsIter.value(), m_rhsIter.value());
91 }
else if (m_lhsIter && (!m_rhsIter || (m_lhsIter.index() < m_rhsIter.index()))) {
92 m_id = m_lhsIter.index();
93 m_value = m_functor(m_lhsIter.value(),
Scalar(0));
95 }
else if (m_rhsIter && (!m_lhsIter || (m_lhsIter.index() > m_rhsIter.index()))) {
96 m_id = m_rhsIter.index();
97 m_value = m_functor(
Scalar(0), m_rhsIter.value());
125 Flags = XprType::Flags
142 template <
typename BinaryOp,
typename Lhs,
typename Rhs>
157 : m_lhsEval(aEval.m_lhsImpl),
158 m_rhsIter(aEval.m_rhsImpl, outer),
159 m_functor(aEval.m_functor),
162 m_innerSize(aEval.m_expr.rhs().innerSize()) {
168 if (m_id < m_innerSize) {
169 Scalar lhsVal = m_lhsEval.coeff(IsRowMajor ? m_rhsIter.outer() : m_id, IsRowMajor ? m_id : m_rhsIter.outer());
170 if (m_rhsIter && m_rhsIter.index() == m_id) {
171 m_value = m_functor(lhsVal, m_rhsIter.value());
174 m_value = m_functor(lhsVal,
Scalar(0));
204 Flags = XprType::Flags
208 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()), m_expr(xpr) {
223 template <
typename BinaryOp,
typename Lhs,
typename Rhs>
238 : m_lhsIter(aEval.m_lhsImpl, outer),
239 m_rhsEval(aEval.m_rhsImpl),
240 m_functor(aEval.m_functor),
243 m_innerSize(aEval.m_expr.lhs().innerSize()) {
249 if (m_id < m_innerSize) {
250 Scalar rhsVal = m_rhsEval.coeff(IsRowMajor ? m_lhsIter.outer() : m_id, IsRowMajor ? m_id : m_lhsIter.outer());
251 if (m_lhsIter && m_lhsIter.index() == m_id) {
252 m_value = m_functor(m_lhsIter.value(), rhsVal);
255 m_value = m_functor(
Scalar(0), rhsVal);
285 Flags = XprType::Flags
289 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()), m_expr(xpr) {
303 template <typename T, typename LhsKind = typename evaluator_traits<typename T::Lhs>::Kind,
310 template <
typename T1,
typename T2,
typename Lhs,
typename Rhs>
318 template <
typename T1,
typename T2,
typename Lhs,
typename Rhs>
326 template <
typename T1,
typename T2,
typename Lhs,
typename Rhs>
335 template <
typename T1,
typename T2,
typename Lhs,
typename Rhs>
344 template <
typename Lhs,
typename Rhs>
352 template <
typename Lhs,
typename Rhs>
360 template <
typename Lhs,
typename Rhs>
376 template <
typename XprType>
391 : m_lhsIter(aEval.m_lhsImpl, outer), m_rhsIter(aEval.m_rhsImpl, outer), m_functor(aEval.m_functor) {
392 while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index())) {
393 if (m_lhsIter.index() < m_rhsIter.index())
403 while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index())) {
404 if (m_lhsIter.index() < m_rhsIter.index())
430 Flags = XprType::Flags
434 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()) {
440 return (
std::min)(m_lhsImpl.nonZerosEstimate(), m_rhsImpl.nonZerosEstimate());
450 template <
typename XprType>
467 : m_lhsEval(aEval.m_lhsImpl), m_rhsIter(aEval.m_rhsImpl, outer), m_functor(aEval.m_functor), m_outer(outer) {}
476 m_lhsEval.coeff(IsRowMajor ? m_outer : m_rhsIter.index(), IsRowMajor ? m_rhsIter.index() : m_outer),
497 Flags = XprType::Flags
501 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()) {
515 template <
typename XprType>
532 : m_lhsIter(aEval.m_lhsImpl, outer), m_rhsEval(aEval.m_rhsImpl), m_functor(aEval.m_functor), m_outer(outer) {}
540 return m_functor(m_lhsIter.value(), m_rhsEval.coeff(IsRowMajor ? m_outer : m_lhsIter.index(),
541 IsRowMajor ? m_lhsIter.index() : m_outer));
561 Flags = XprType::Flags
565 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()) {
578 template <typename T, typename LhsKind = typename evaluator_traits<typename T::Lhs>::Kind,
592 template <
typename XprType>
607 : m_lhsIter(aEval.m_lhsImpl, outer),
608 m_rhsIter(aEval.m_rhsImpl, outer),
609 m_functor(aEval.m_functor),
615 if (m_lhsIter && m_rhsIter && (m_lhsIter.index() == m_rhsIter.index())) {
616 m_id = m_lhsIter.
index();
617 m_value = m_functor(m_lhsIter.value(), m_rhsIter.value());
620 }
else if (m_lhsIter && (!m_rhsIter || (m_lhsIter.index() < m_rhsIter.index()))) {
621 m_id = m_lhsIter.index();
622 m_value = m_lhsIter.value();
624 }
else if (m_rhsIter && (!m_lhsIter || (m_lhsIter.index() > m_rhsIter.index()))) {
625 m_id = m_rhsIter.index();
626 m_value = m_rhsIter.value();
654 Flags = XprType::Flags
658 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()) {
672 template <
typename XprType>
689 : m_lhsEval(aEval.m_lhsImpl),
690 m_rhsIter(aEval.m_rhsImpl, outer),
691 m_functor(aEval.m_functor),
694 m_innerSize(aEval.m_expr.rhs().innerSize()) {
700 if (m_id < m_innerSize) {
701 Scalar lhsVal = m_lhsEval.coeff(IsRowMajor ? m_rhsIter.outer() : m_id, IsRowMajor ? m_id : m_rhsIter.outer());
702 if (m_rhsIter && m_rhsIter.index() == m_id) {
703 m_value = m_functor(lhsVal, m_rhsIter.value());
736 Flags = XprType::Flags
740 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()), m_expr(xpr) {
755 template <
typename XprType>
772 : m_lhsIter(aEval.m_lhsImpl, outer),
773 m_rhsEval(aEval.m_rhsImpl),
774 m_functor(aEval.m_functor),
777 m_innerSize(aEval.m_expr.lhs().innerSize()) {
783 if (m_id < m_innerSize) {
784 Scalar rhsVal = m_rhsEval.coeff(IsRowMajor ? m_lhsIter.outer() : m_id, IsRowMajor ? m_id : m_lhsIter.outer());
785 if (m_lhsIter && m_lhsIter.index() == m_id) {
786 m_value = m_functor(m_lhsIter.value(), rhsVal);
819 Flags = XprType::Flags
823 : m_functor(xpr.functor()), m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()), m_expr(xpr) {
838 template <
typename T1,
typename T2,
typename DupFunc,
typename Lhs,
typename Rhs>
851 template <
typename Derived>
852 template <
typename OtherDerived>
858 template <
typename Derived>
859 template <
typename OtherDerived>
865 template <
typename Derived>
866 template <
typename OtherDerived>
868 return derived() = derived() - other.
derived();
871 template <
typename Derived>
872 template <
typename OtherDerived>
874 return derived() = derived() + other.
derived();
877 template <
typename Derived>
878 template <
typename OtherDerived>
885 template <
typename Derived>
886 template <
typename OtherDerived>
893 template <
typename Derived>
894 template <
typename OtherDerived>
900 template <
typename DenseDerived,
typename SparseDerived>
903 const DenseDerived,
const SparseDerived>
906 const DenseDerived,
const SparseDerived>(
a.derived(),
b.derived());
909 template <
typename SparseDerived,
typename DenseDerived>
911 CwiseBinaryOp<internal::scalar_sum_op<typename SparseDerived::Scalar, typename DenseDerived::Scalar>,
912 const SparseDerived,
const DenseDerived>
915 const SparseDerived,
const DenseDerived>(
a.derived(),
b.derived());
918 template <
typename DenseDerived,
typename SparseDerived>
920 CwiseBinaryOp<internal::scalar_difference_op<typename DenseDerived::Scalar, typename SparseDerived::Scalar>,
921 const DenseDerived,
const SparseDerived>
924 const DenseDerived,
const SparseDerived>(
a.derived(),
b.derived());
927 template <
typename SparseDerived,
typename DenseDerived>
929 CwiseBinaryOp<internal::scalar_difference_op<typename SparseDerived::Scalar, typename DenseDerived::Scalar>,
930 const SparseDerived,
const DenseDerived>
933 const SparseDerived,
const DenseDerived>(
a.derived(),
b.derived());
#define eigen_internal_assert(x)
Definition: Macros.h:916
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
Definition: SparseUtil.h:39
#define EIGEN_STATIC_ASSERT(X, MSG)
Definition: StaticAssert.h:26
#define EIGEN_INTERNAL_CHECK_COST_VALUE(C)
Definition: StaticAssert.h:101
Scalar * b
Definition: benchVecAdd.cpp:17
SCALAR Scalar
Definition: bench_gemm.cpp:45
CwiseBinaryOp< BinaryOp, Lhs, Rhs > Derived
Definition: SparseCwiseBinaryOp.h:41
SparseMatrixBase< Derived > Base
Definition: SparseCwiseBinaryOp.h:42
Definition: CwiseBinaryOp.h:137
Generic expression where a coefficient-wise binary operator is applied to two expressions.
Definition: CwiseBinaryOp.h:79
internal::remove_all_t< LhsType > Lhs
Definition: CwiseBinaryOp.h:82
internal::remove_all_t< RhsType > Rhs
Definition: CwiseBinaryOp.h:83
internal::remove_all_t< BinaryOp > Functor
Definition: CwiseBinaryOp.h:81
Base class for diagonal matrices and expressions.
Definition: DiagonalMatrix.h:33
EIGEN_DEVICE_FUNC const Derived & derived() const
Definition: DiagonalMatrix.h:57
An InnerIterator allows to loop over the element of any matrix expression.
Definition: CoreIterators.h:37
EIGEN_STRONG_INLINE Index index() const
Definition: CoreIterators.h:67
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:52
Base class of any sparse matrices or sparse expressions.
Definition: SparseMatrixBase.h:30
Derived & operator-=(const SparseMatrixBase< OtherDerived > &other)
Derived & operator+=(const SparseMatrixBase< OtherDerived > &other)
EIGEN_STRONG_INLINE const CwiseProductDenseReturnType< OtherDerived >::Type cwiseProduct(const MatrixBase< OtherDerived > &other) const
const Derived & derived() const
Definition: SparseMatrixBase.h:144
RhsIterator m_rhsIter
Definition: SparseCwiseBinaryOp.h:194
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:188
const evaluator< Lhs > & m_lhsEval
Definition: SparseCwiseBinaryOp.h:193
EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:156
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:195
Scalar m_value
Definition: SparseCwiseBinaryOp.h:196
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:186
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:180
StorageIndex m_id
Definition: SparseCwiseBinaryOp.h:197
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:187
StorageIndex m_innerSize
Definition: SparseCwiseBinaryOp.h:198
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:166
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:185
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:105
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:108
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:85
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:107
EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:77
RhsIterator m_rhsIter
Definition: SparseCwiseBinaryOp.h:116
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:117
Scalar m_value
Definition: SparseCwiseBinaryOp.h:118
StorageIndex m_id
Definition: SparseCwiseBinaryOp.h:119
LhsIterator m_lhsIter
Definition: SparseCwiseBinaryOp.h:115
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:109
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:110
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:276
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:269
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:268
StorageIndex m_id
Definition: SparseCwiseBinaryOp.h:278
Scalar m_value
Definition: SparseCwiseBinaryOp.h:277
EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:237
const evaluator< Rhs > & m_rhsEval
Definition: SparseCwiseBinaryOp.h:275
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:261
LhsIterator m_lhsIter
Definition: SparseCwiseBinaryOp.h:274
StorageIndex m_innerSize
Definition: SparseCwiseBinaryOp.h:279
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:247
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:267
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:266
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:480
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:481
const Index m_outer
Definition: SparseCwiseBinaryOp.h:491
EIGEN_STRONG_INLINE InnerIterator(const sparse_conjunction_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:466
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:482
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:483
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:469
const LhsEvaluator & m_lhsEval
Definition: SparseCwiseBinaryOp.h:488
RhsIterator m_rhsIter
Definition: SparseCwiseBinaryOp.h:489
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:474
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:490
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:547
LhsIterator m_lhsIter
Definition: SparseCwiseBinaryOp.h:552
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:544
const Index m_outer
Definition: SparseCwiseBinaryOp.h:555
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:554
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:546
EIGEN_STRONG_INLINE InnerIterator(const sparse_conjunction_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:531
const evaluator< RhsArg > & m_rhsEval
Definition: SparseCwiseBinaryOp.h:553
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:539
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:534
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:545
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:412
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:417
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:424
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:415
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:400
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:414
EIGEN_STRONG_INLINE InnerIterator(const sparse_conjunction_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:390
RhsIterator m_rhsIter
Definition: SparseCwiseBinaryOp.h:423
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:416
LhsIterator m_lhsIter
Definition: SparseCwiseBinaryOp.h:422
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:698
const evaluator< LhsArg > & m_lhsEval
Definition: SparseCwiseBinaryOp.h:725
RhsIterator m_rhsIter
Definition: SparseCwiseBinaryOp.h:726
EIGEN_STRONG_INLINE InnerIterator(const sparse_disjunction_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:688
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:712
Scalar m_value
Definition: SparseCwiseBinaryOp.h:728
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:720
StorageIndex m_id
Definition: SparseCwiseBinaryOp.h:729
StorageIndex m_innerSize
Definition: SparseCwiseBinaryOp.h:730
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:718
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:727
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:719
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:717
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:800
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:795
StorageIndex m_innerSize
Definition: SparseCwiseBinaryOp.h:813
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:781
const evaluator< RhsArg > & m_rhsEval
Definition: SparseCwiseBinaryOp.h:809
Scalar m_value
Definition: SparseCwiseBinaryOp.h:811
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:810
StorageIndex m_id
Definition: SparseCwiseBinaryOp.h:812
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:802
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:803
EIGEN_STRONG_INLINE InnerIterator(const sparse_disjunction_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:771
LhsIterator m_lhsIter
Definition: SparseCwiseBinaryOp.h:808
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:801
StorageIndex m_id
Definition: SparseCwiseBinaryOp.h:648
RhsIterator m_rhsIter
Definition: SparseCwiseBinaryOp.h:645
EIGEN_STRONG_INLINE Index outer() const
Definition: SparseCwiseBinaryOp.h:637
EIGEN_STRONG_INLINE Index col() const
Definition: SparseCwiseBinaryOp.h:639
EIGEN_STRONG_INLINE Index row() const
Definition: SparseCwiseBinaryOp.h:638
EIGEN_STRONG_INLINE InnerIterator(const sparse_disjunction_evaluator &aEval, Index outer)
Definition: SparseCwiseBinaryOp.h:606
const BinaryOp & m_functor
Definition: SparseCwiseBinaryOp.h:646
EIGEN_STRONG_INLINE Scalar value() const
Definition: SparseCwiseBinaryOp.h:634
Scalar m_value
Definition: SparseCwiseBinaryOp.h:647
EIGEN_STRONG_INLINE StorageIndex index() const
Definition: SparseCwiseBinaryOp.h:636
LhsIterator m_lhsIter
Definition: SparseCwiseBinaryOp.h:644
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition: SparseCwiseBinaryOp.h:614
#define min(a, b)
Definition: datatypes.h:22
const unsigned int RowMajorBit
Definition: Constants.h:70
const Scalar * a
Definition: level2_cplx_impl.h:32
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 operator++(bfloat16 &a)
Definition: BFloat16.h:307
@ Lhs
Definition: TensorContractionMapper.h:20
@ Rhs
Definition: TensorContractionMapper.h:20
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_assignment(Dst &dst, const Src &src)
Definition: AssignEvaluator.h:781
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR void call_assignment_no_alias(Dst &dst, const Src &src, const Func &func)
Definition: AssignEvaluator.h:812
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
squared absolute value
Definition: GlobalFunctions.h:87
EIGEN_STRONG_INLINE const CwiseBinaryOp< internal::scalar_difference_op< typename DenseDerived::Scalar, typename SparseDerived::Scalar >, const DenseDerived, const SparseDerived > operator-(const MatrixBase< DenseDerived > &a, const SparseMatrixBase< SparseDerived > &b)
Definition: SparseCwiseBinaryOp.h:922
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
EIGEN_STRONG_INLINE const CwiseBinaryOp< internal::scalar_sum_op< typename DenseDerived::Scalar, typename SparseDerived::Scalar >, const DenseDerived, const SparseDerived > operator+(const MatrixBase< DenseDerived > &a, const SparseMatrixBase< SparseDerived > &b)
Definition: SparseCwiseBinaryOp.h:904
Extend namespace for flags.
Definition: fsi_chan_precond_driver.cc:56
Definition: Eigen_Colamd.h:49
Type
Type of JSON value.
Definition: rapidjson.h:513
Definition: EigenBase.h:33
constexpr EIGEN_DEVICE_FUNC Derived & derived()
Definition: EigenBase.h:49
Definition: Constants.h:522
Definition: Constants.h:577
Definition: Constants.h:580
Template functor for scalar/packet assignment with addition.
Definition: AssignmentFunctors.h:52
Template functor for scalar/packet assignment.
Definition: AssignmentFunctors.h:25
CwiseBinaryOp< BinaryOp, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:147
evaluator< Rhs > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:218
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:213
const XprType & m_expr
Definition: SparseCwiseBinaryOp.h:219
evaluator< Lhs > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:217
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:149
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:207
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:148
evaluator< Rhs >::InnerIterator RhsIterator
Definition: SparseCwiseBinaryOp.h:146
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:216
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:136
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:128
evaluator< Rhs >::InnerIterator RhsIterator
Definition: SparseCwiseBinaryOp.h:69
evaluator< Rhs > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:138
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:133
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:71
evaluator< Lhs > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:137
evaluator< Lhs >::InnerIterator LhsIterator
Definition: SparseCwiseBinaryOp.h:68
CwiseBinaryOp< BinaryOp, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:70
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:72
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:230
const XprType & m_expr
Definition: SparseCwiseBinaryOp.h:300
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:294
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:229
evaluator< Lhs >::InnerIterator LhsIterator
Definition: SparseCwiseBinaryOp.h:227
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:297
CwiseBinaryOp< BinaryOp, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:228
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:288
evaluator< Lhs > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:298
evaluator< Rhs > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:299
sparse_conjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:348
CwiseBinaryOp< scalar_boolean_and_op< bool >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:347
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:349
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:365
CwiseBinaryOp< scalar_boolean_and_op< bool >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:363
sparse_conjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:364
sparse_conjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:356
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:357
CwiseBinaryOp< scalar_boolean_and_op< bool >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:355
CwiseBinaryOp< scalar_disjunction_op< DupFunc, T1, T2 >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:841
sparse_disjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:842
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:843
sparse_conjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:330
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:331
CwiseBinaryOp< scalar_product_op< T1, T2 >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:329
sparse_conjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:314
CwiseBinaryOp< scalar_product_op< T1, T2 >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:313
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:315
CwiseBinaryOp< scalar_product_op< T1, T2 >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:321
sparse_conjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:322
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:323
sparse_conjunction_evaluator< XprType > Base
Definition: SparseCwiseBinaryOp.h:339
CwiseBinaryOp< scalar_quotient_op< T1, T2 >, Lhs, Rhs > XprType
Definition: SparseCwiseBinaryOp.h:338
binary_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:340
Definition: CoreEvaluators.h:78
Definition: SparseCwiseBinaryOp.h:62
Definition: CoreEvaluators.h:118
Definition: CoreEvaluators.h:104
Definition: XprHelper.h:205
Template functor to compute the and of two scalars as if they were booleans.
Definition: BinaryFunctors.h:461
Definition: SparseMatrix.h:1240
Template functor to compute the product of two scalars.
Definition: BinaryFunctors.h:73
Template functor to compute the quotient of two scalars.
Definition: BinaryFunctors.h:430
XprType::Rhs RhsArg
Definition: SparseCwiseBinaryOp.h:455
XprType::Functor BinaryOp
Definition: SparseCwiseBinaryOp.h:453
sparse_conjunction_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:500
XprType::Lhs LhsArg
Definition: SparseCwiseBinaryOp.h:454
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:459
evaluator< RhsArg >::InnerIterator RhsIterator
Definition: SparseCwiseBinaryOp.h:457
evaluator< LhsArg > LhsEvaluator
Definition: SparseCwiseBinaryOp.h:456
evaluator< RhsArg > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:511
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:509
evaluator< LhsArg > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:510
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:458
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:506
evaluator< RhsArg > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:575
sparse_conjunction_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:564
XprType::Rhs RhsArg
Definition: SparseCwiseBinaryOp.h:520
XprType::Functor BinaryOp
Definition: SparseCwiseBinaryOp.h:518
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:570
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:523
evaluator< LhsArg > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:574
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:524
evaluator< RhsArg > RhsEvaluator
Definition: SparseCwiseBinaryOp.h:522
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:573
evaluator< LhsArg >::InnerIterator LhsIterator
Definition: SparseCwiseBinaryOp.h:521
XprType::Lhs LhsArg
Definition: SparseCwiseBinaryOp.h:519
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:439
XprType::Functor BinaryOp
Definition: SparseCwiseBinaryOp.h:379
sparse_conjunction_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:433
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:444
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:385
XprType::Rhs RhsArg
Definition: SparseCwiseBinaryOp.h:381
evaluator< RhsArg >::InnerIterator RhsIterator
Definition: SparseCwiseBinaryOp.h:383
evaluator< RhsArg > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:446
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:384
XprType::Lhs LhsArg
Definition: SparseCwiseBinaryOp.h:380
evaluator< LhsArg > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:445
evaluator< LhsArg >::InnerIterator LhsIterator
Definition: SparseCwiseBinaryOp.h:382
Definition: SparseCwiseBinaryOp.h:307
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:745
XprType::Functor BinaryOp
Definition: SparseCwiseBinaryOp.h:675
evaluator< LhsArg > LhsEvaluator
Definition: SparseCwiseBinaryOp.h:678
XprType::Lhs LhsArg
Definition: SparseCwiseBinaryOp.h:676
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:748
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:681
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:680
evaluator< RhsArg >::InnerIterator RhsIterator
Definition: SparseCwiseBinaryOp.h:679
evaluator< LhsArg > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:749
evaluator< RhsArg > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:750
XprType::Rhs RhsArg
Definition: SparseCwiseBinaryOp.h:677
const XprType & m_expr
Definition: SparseCwiseBinaryOp.h:751
sparse_disjunction_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:739
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:828
XprType::Rhs RhsArg
Definition: SparseCwiseBinaryOp.h:760
evaluator< LhsArg >::InnerIterator LhsIterator
Definition: SparseCwiseBinaryOp.h:761
evaluator< RhsArg > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:833
evaluator< LhsArg > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:832
XprType::Lhs LhsArg
Definition: SparseCwiseBinaryOp.h:759
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:763
const XprType & m_expr
Definition: SparseCwiseBinaryOp.h:834
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:831
evaluator< RhsArg > RhsEvaluator
Definition: SparseCwiseBinaryOp.h:762
sparse_disjunction_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:822
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:764
XprType::Functor BinaryOp
Definition: SparseCwiseBinaryOp.h:758
evaluator< LhsArg > m_lhsImpl
Definition: SparseCwiseBinaryOp.h:667
evaluator< RhsArg > m_rhsImpl
Definition: SparseCwiseBinaryOp.h:668
evaluator< RhsArg >::InnerIterator RhsIterator
Definition: SparseCwiseBinaryOp.h:599
XprType::Lhs LhsArg
Definition: SparseCwiseBinaryOp.h:596
XprType::StorageIndex StorageIndex
Definition: SparseCwiseBinaryOp.h:600
XprType::Functor BinaryOp
Definition: SparseCwiseBinaryOp.h:595
traits< XprType >::Scalar Scalar
Definition: SparseCwiseBinaryOp.h:601
const BinaryOp m_functor
Definition: SparseCwiseBinaryOp.h:666
Index nonZerosEstimate() const
Definition: SparseCwiseBinaryOp.h:663
sparse_disjunction_evaluator(const XprType &xpr)
Definition: SparseCwiseBinaryOp.h:657
XprType::Rhs RhsArg
Definition: SparseCwiseBinaryOp.h:597
evaluator< LhsArg >::InnerIterator LhsIterator
Definition: SparseCwiseBinaryOp.h:598
Definition: SparseCwiseBinaryOp.h:582
Template functor for scalar/packet assignment with subtraction.
Definition: AssignmentFunctors.h:73
Definition: ForwardDeclarations.h:21