11#ifndef EIGEN_SPARSEVIEW_H
12#define EIGEN_SPARSEVIEW_H
18template<
typename MatrixType>
44template<
typename MatrixType>
47 typedef typename MatrixType::Nested MatrixTypeNested;
83template<
typename ArgType>
94 typedef typename XprType::Scalar
Scalar;
100 incrementToNonZero();
105 EvalIterator::operator++();
106 incrementToNonZero();
110 using EvalIterator::value;
116 void incrementToNonZero()
118 while((
bool(*
this)) && internal::isMuchSmallerThan(value(), m_view.reference(), m_view.epsilon()))
120 EvalIterator::operator++();
127 Flags = XprType::Flags
137template<
typename ArgType>
154 : m_sve(
sve), m_inner(0), m_outer(outer), m_end(
sve.m_view.innerSize())
156 incrementToNonZero();
162 incrementToNonZero();
168 return (IsRowMajor) ? m_sve.m_argImpl.coeff(m_outer, m_inner)
169 : m_sve.m_argImpl.coeff(m_inner, m_outer);
173 inline Index row()
const {
return IsRowMajor ? m_outer : index(); }
174 inline Index col()
const {
return IsRowMajor ? index() : m_outer; }
185 void incrementToNonZero()
187 while((
bool(*
this)) && internal::isMuchSmallerThan(value(), m_sve.m_view.reference(), m_sve.m_view.epsilon()))
196 Flags = XprType::Flags
225template<
typename Derived>
244template<
typename Derived>
#define EIGEN_STRONG_INLINE
Definition Macros.h:917
#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
Definition SparseUtil.h:43
MatrixXf mat
Definition Tutorial_AdvancedInitialization_CommaTemporary.cpp:1
MatrixXf MatrixType
Definition benchmark-blocking-sizes.cpp:52
An InnerIterator allows to loop over the element of any matrix expression.
Definition CoreIterators.h:34
internal::traits< Derived >::Scalar Scalar
Definition MatrixBase.h:56
Base class of any sparse matrices or sparse expressions.
Definition SparseMatrixBase.h:28
internal::traits< SparseView< MatrixType > >::Scalar Scalar
Definition SparseMatrixBase.h:31
NumTraits< Scalar >::Real RealScalar
Definition SparseMatrixBase.h:128
const SparseView< Derived > pruned(const Scalar &reference=Scalar(0), const RealScalar &epsilon=NumTraits< Scalar >::dummy_precision()) const
Definition SparseView.h:246
Expression of a dense or sparse matrix with zero or too small values removed.
Definition SparseView.h:46
const internal::remove_all< MatrixTypeNested >::type & nestedExpression() const
Definition SparseView.h:66
Scalar reference() const
Definition SparseView.h:68
Scalar m_reference
Definition SparseView.h:73
Index outerSize() const
Definition SparseView.h:62
Index innerSize() const
Definition SparseView.h:61
RealScalar m_epsilon
Definition SparseView.h:74
Index cols() const
Definition SparseView.h:59
Index rows() const
Definition SparseView.h:58
MatrixTypeNested m_matrix
Definition SparseView.h:72
RealScalar epsilon() const
Definition SparseView.h:69
Index m_inner
Definition SparseView.h:180
const unary_evaluator & m_sve
Definition SparseView.h:179
const Index m_outer
Definition SparseView.h:181
Index col() const
Definition SparseView.h:174
Index row() const
Definition SparseView.h:173
EIGEN_STRONG_INLINE Scalar value() const
Definition SparseView.h:166
EIGEN_STRONG_INLINE StorageIndex index() const
Definition SparseView.h:172
const Index m_end
Definition SparseView.h:182
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition SparseView.h:159
EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator &sve, Index outer)
Definition SparseView.h:153
const XprType & m_view
Definition SparseView.h:113
XprType::Scalar Scalar
Definition SparseView.h:94
EIGEN_STRONG_INLINE InnerIterator & operator++()
Definition SparseView.h:103
EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator &sve, Index outer)
Definition SparseView.h:97
const SparseView< Derived > sparseView(const Scalar &m_reference=Scalar(0), const typename NumTraits< Scalar >::Real &m_epsilon=NumTraits< Scalar >::dummy_precision()) const
Definition SparseView.h:226
const unsigned int RowMajorBit
Definition Constants.h:66
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
Definition BandTriangularSolver.h:13
Eigen::Index Index
The interface type of indices.
Definition EigenBase.h:39
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition NumTraits.h:233
Definition Constants.h:510
Definition Constants.h:542
Definition Constants.h:545
Definition CoreEvaluators.h:111
Definition CoreEvaluators.h:91
MatrixType::StorageIndex StorageIndex
Definition SparseView.h:21
Sparse StorageKind
Definition SparseView.h:22
Definition ForwardDeclarations.h:17
const XprType & m_view
Definition SparseView.h:203
XprType::StorageIndex StorageIndex
Definition SparseView.h:146
evaluator< ArgType > m_argImpl
Definition SparseView.h:202
XprType::Scalar Scalar
Definition SparseView.h:145
SparseView< ArgType > XprType
Definition SparseView.h:142
unary_evaluator(const XprType &xpr)
Definition SparseView.h:199
const XprType & m_view
Definition SparseView.h:134
evaluator< ArgType > m_argImpl
Definition SparseView.h:133
SparseView< ArgType > XprType
Definition SparseView.h:89
evaluator< ArgType >::InnerIterator EvalIterator
Definition SparseView.h:87
unary_evaluator(const XprType &xpr)
Definition SparseView.h:130
Definition CoreEvaluators.h:65