11 #ifndef EIGEN_SPARSEVIEW_H    12 #define EIGEN_SPARSEVIEW_H    18 template<
typename MatrixType>
    30 template<
typename MatrixType>
    42     : m_matrix(mat), m_reference(reference), m_epsilon(epsilon) {}
    44   inline Index rows()
 const { 
return m_matrix.rows(); }
    45   inline Index cols()
 const { 
return m_matrix.cols(); }
    69 template<
typename ArgType>
    83           : EvalIterator(sve.m_argImpl,outer), m_view(sve.m_view)
    90           EvalIterator::operator++();
    95         using EvalIterator::value;
   103           while((
bool(*
this)) && internal::isMuchSmallerThan(value(), m_view.
reference(), m_view.
epsilon()))
   105             EvalIterator::operator++();
   112       Flags = XprType::Flags
   115     explicit unary_evaluator(
const XprType& xpr) : m_argImpl(xpr.nestedExpression()), m_view(xpr) {}
   122 template<
typename ArgType>
   139           : m_sve(sve), m_inner(0), m_outer(outer), m_end(sve.m_view.innerSize())
   141           incrementToNonZero();
   147           incrementToNonZero();
   153           return (IsRowMajor) ? m_sve.m_argImpl.coeff(m_outer, m_inner)
   154                               : m_sve.m_argImpl.coeff(m_inner, m_outer);
   158         inline Index row()
 const { 
return IsRowMajor ? m_outer : index(); }
   159         inline Index col()
 const { 
return IsRowMajor ? index() : m_outer; }
   172           while((
bool(*
this)) && internal::isMuchSmallerThan(value(), m_sve.m_view.reference(), m_sve.m_view.epsilon()))
   181       Flags = XprType::Flags
   184     explicit unary_evaluator(
const XprType& xpr) : m_argImpl(xpr.nestedExpression()), m_view(xpr) {}
   193 template<
typename Derived>
   212 template<
typename Derived>
 evaluator< ArgType >::InnerIterator EvalIterator
SparseMatrixBase< SparseView > Base
EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator &sve, Index outer)
unary_evaluator(const XprType &xpr)
#define EIGEN_STRONG_INLINE
internal::traits< Derived >::Scalar Scalar
EIGEN_STRONG_INLINE StorageIndex index() const
EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator &sve, Index outer)
SparseView< ArgType > XprType
const unary_evaluator & m_sve
MatrixType::StorageIndex StorageIndex
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
evaluator< ArgType > m_argImpl
Eigen::Index Index
The interface type of indices. 
const unsigned int RowMajorBit
const SparseView< Derived > pruned(const Scalar &reference=Scalar(0), const RealScalar &epsilon=NumTraits< Scalar >::dummy_precision()) const
internal::remove_all< MatrixType >::type NestedExpression
internal::traits< SparseView< MatrixType > >::StorageIndex StorageIndex
#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
XprType::StorageIndex StorageIndex
Base class of any sparse matrices or sparse expressions. 
void incrementToNonZero()
MatrixType::Nested MatrixTypeNested
internal::remove_all< MatrixTypeNested >::type _MatrixTypeNested
MatrixTypeNested m_matrix
internal::traits< SparseView< MatrixType > >::Scalar Scalar
void incrementToNonZero()
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API. 
unary_evaluator(const XprType &xpr)
SparseView< ArgType > XprType
const SparseView< Derived > sparseView(const Scalar &m_reference=Scalar(0), const typename NumTraits< Scalar >::Real &m_epsilon=NumTraits< Scalar >::dummy_precision()) const
RealScalar epsilon() const
NumTraits< Scalar >::Real RealScalar
EIGEN_STRONG_INLINE InnerIterator & operator++()
evaluator< ArgType > m_argImpl
const internal::remove_all< MatrixTypeNested >::type & nestedExpression() const
EIGEN_STRONG_INLINE InnerIterator & operator++()
EIGEN_STRONG_INLINE Scalar value() const
An InnerIterator allows to loop over the element of any matrix expression.