From 99e4afd43eb41fccd595daa7d930e9c35a36460e Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Thu, 24 Jun 2010 22:48:48 +0200 Subject: [PATCH] makes SparseView a true sparse expression and fix use of nesting types --- Eigen/src/Sparse/SparseView.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Eigen/src/Sparse/SparseView.h b/Eigen/src/Sparse/SparseView.h index 56d00b396..8a0446963 100644 --- a/Eigen/src/Sparse/SparseView.h +++ b/Eigen/src/Sparse/SparseView.h @@ -27,11 +27,16 @@ #define EIGEN_SPARSEVIEW_H template -struct ei_traits > : ei_traits {}; +struct ei_traits > : ei_traits +{ + typedef int Index; + typedef Sparse StorageKind; +}; template class SparseView : public SparseMatrixBase > { + typedef typename MatrixType::Nested MatrixTypeNested; public: EIGEN_SPARSE_PUBLIC_INTERFACE(SparseView) @@ -47,18 +52,18 @@ public: inline Index outerSize() const { return m_matrix.outerSize(); } protected: - const typename MatrixType::Nested m_matrix; + const MatrixTypeNested m_matrix; Scalar m_reference; typename NumTraits::Real m_epsilon; }; template -class SparseView::InnerIterator : public MatrixType::InnerIterator +class SparseView::InnerIterator : public MatrixTypeNested::InnerIterator { public: - typedef typename MatrixType::InnerIterator IterBase; + typedef typename MatrixTypeNested::InnerIterator IterBase; InnerIterator(const SparseView& view, Index outer) : - DenseBase::InnerIterator(view.m_matrix, outer), m_view(view) + IterBase(view.m_matrix, outer), m_view(view) { incrementToNonZero(); }