10 #ifndef EIGEN_COREITERATORS_H 11 #define EIGEN_COREITERATORS_H 20 template<
typename XprType,
typename EvaluatorKind>
32 template<
typename XprType>
42 : m_eval(xpr), m_iter(m_eval, outerId, xpr.innerSize())
46 EIGEN_STRONG_INLINE Scalar
value()
const {
return m_iter.value(); }
52 EIGEN_STRONG_INLINE
Index index()
const {
return m_iter.index(); }
54 EIGEN_STRONG_INLINE
Index row()
const {
return m_iter.row(); }
56 EIGEN_STRONG_INLINE
Index col()
const {
return m_iter.col(); }
58 EIGEN_STRONG_INLINE
operator bool()
const {
return m_iter; }
73 template<
typename XprType>
83 : m_eval(eval), m_inner(0), m_outer(outerId), m_end(innerSize)
86 EIGEN_STRONG_INLINE Scalar value()
const 88 return (IsRowMajor) ? m_eval.coeff(m_outer, m_inner)
89 : m_eval.coeff(m_inner, m_outer);
92 EIGEN_STRONG_INLINE inner_iterator_selector& operator++() { m_inner++;
return *
this; }
94 EIGEN_STRONG_INLINE
Index index()
const {
return m_inner; }
95 inline Index row()
const {
return IsRowMajor ? m_outer : index(); }
96 inline Index col()
const {
return IsRowMajor ? index() : m_outer; }
98 EIGEN_STRONG_INLINE
operator bool()
const {
return m_inner < m_end && m_inner>=0; }
101 const EvaluatorType& m_eval;
109 template<
typename XprType>
119 : Base(eval, outerId)
127 #endif // EIGEN_COREITERATORS_H Definition: Constants.h:526
EIGEN_STRONG_INLINE Index index() const
Definition: CoreIterators.h:52
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:85
const unsigned int RowMajorBit
for a matrix, this means that the storage order is row-major.
Definition: Constants.h:61
Definition: Constants.h:529
Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor Matrix...
Definition: EigenBase.h:28
EIGEN_STRONG_INLINE Index row() const
Definition: CoreIterators.h:54
InnerIterator(const XprType &xpr, const Index &outerId)
Construct an iterator over the outerId -th row or column of xpr.
Definition: CoreIterators.h:41
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:33
Definition: CoreIterators.h:21
Definition: BandTriangularSolver.h:13
EIGEN_STRONG_INLINE Scalar value() const
Definition: CoreIterators.h:46
EIGEN_STRONG_INLINE Index col() const
Definition: CoreIterators.h:56
Definition: ForwardDeclarations.h:17
Definition: XprHelper.h:312
An InnerIterator allows to loop over the element of any matrix expression.
Definition: CoreIterators.h:33
EIGEN_STRONG_INLINE InnerIterator & operator++()
Increment the iterator *this to the next non-zero coefficient.
Definition: CoreIterators.h:50