aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/SparseCore/MappedSparseMatrix.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-07-22 11:35:56 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-07-22 11:35:56 +0200
commit6daa6a0d164ac3c225645e47f55238e9ba2a32cc (patch)
tree316255fb310c4e5f4583eeb89eca63127efc92c2 /Eigen/src/SparseCore/MappedSparseMatrix.h
parent2a251ffab0f3abd1fcfe340a4bee61e352d83424 (diff)
Refactor TriangularView to handle both dense and sparse objects. Introduce a glu_shape<S1,S2> helper to assemble sparse/dense shapes with triagular/seladjoint views.
Diffstat (limited to 'Eigen/src/SparseCore/MappedSparseMatrix.h')
-rw-r--r--Eigen/src/SparseCore/MappedSparseMatrix.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/Eigen/src/SparseCore/MappedSparseMatrix.h b/Eigen/src/SparseCore/MappedSparseMatrix.h
index ab1a266a9..9205b906f 100644
--- a/Eigen/src/SparseCore/MappedSparseMatrix.h
+++ b/Eigen/src/SparseCore/MappedSparseMatrix.h
@@ -176,6 +176,34 @@ class MappedSparseMatrix<Scalar,_Flags,_Index>::ReverseInnerIterator
const Index m_end;
};
+#ifdef EIGEN_ENABLE_EVALUATORS
+namespace internal {
+
+template<typename _Scalar, int _Options, typename _Index>
+struct evaluator<MappedSparseMatrix<_Scalar,_Options,_Index> >
+ : evaluator_base<MappedSparseMatrix<_Scalar,_Options,_Index> >
+{
+ typedef MappedSparseMatrix<_Scalar,_Options,_Index> MappedSparseMatrixType;
+ typedef typename MappedSparseMatrixType::InnerIterator InnerIterator;
+ typedef typename MappedSparseMatrixType::ReverseInnerIterator ReverseInnerIterator;
+
+ enum {
+ CoeffReadCost = NumTraits<_Scalar>::ReadCost,
+ Flags = MappedSparseMatrixType::Flags
+ };
+
+ evaluator() : m_matrix(0) {}
+ evaluator(const MappedSparseMatrixType &mat) : m_matrix(&mat) {}
+
+ operator MappedSparseMatrixType&() { return m_matrix->const_cast_derived(); }
+ operator const MappedSparseMatrixType&() const { return *m_matrix; }
+
+ const MappedSparseMatrixType *m_matrix;
+};
+
+}
+#endif
+
} // end namespace Eigen
#endif // EIGEN_MAPPED_SPARSEMATRIX_H