25 #ifndef EIGEN_MAPPED_SPARSEMATRIX_H
26 #define EIGEN_MAPPED_SPARSEMATRIX_H
40 template<
typename _Scalar,
int _Flags,
typename _Index>
41 struct traits<MappedSparseMatrix<_Scalar, _Flags, _Index> > :
traits<SparseMatrix<_Scalar, _Flags, _Index> >
45 template<
typename _Scalar,
int _Flags,
typename _Index>
107 eigen_assert(end>=start &&
"you probably called coeffRef on a non finalized matrix");
108 eigen_assert(end>start &&
"coeffRef cannot be called on a zero coefficient");
111 eigen_assert((*r==inner) && (
id<end) &&
"coeffRef cannot be called on a zero coefficient");
116 class ReverseInnerIterator;
130 template<
typename Scalar,
int _Flags,
typename _Index>
131 class MappedSparseMatrix<Scalar,_Flags,_Index>::InnerIterator
142 inline InnerIterator& operator++() { m_id++;
return *
this; }
144 inline Scalar value()
const {
return m_matrix.valuePtr()[m_id]; }
145 inline Scalar& valueRef() {
return const_cast<Scalar&
>(m_matrix.valuePtr()[m_id]); }
147 inline Index index()
const {
return m_matrix.innerIndexPtr()[m_id]; }
151 inline operator bool()
const {
return (m_id < m_end) && (m_id>=m_start); }
161 template<
typename Scalar,
int _Flags,
typename _Index>
162 class MappedSparseMatrix<Scalar,_Flags,_Index>::ReverseInnerIterator
173 inline ReverseInnerIterator& operator--() { m_id--;
return *
this; }
175 inline Scalar value()
const {
return m_matrix.valuePtr()[m_id-1]; }
176 inline Scalar& valueRef() {
return const_cast<Scalar&
>(m_matrix.valuePtr()[m_id-1]); }
178 inline Index index()
const {
return m_matrix.innerIndexPtr()[m_id-1]; }
182 inline operator bool()
const {
return (m_id <= m_end) && (m_id>m_start); }
194 #endif // EIGEN_MAPPED_SPARSEMATRIX_H