From e8515f78ac098329ab9f8cab21c87caede090a3f Mon Sep 17 00:00:00 2001 From: Charles Schlosser Date: Thu, 5 Oct 2023 17:13:37 +0000 Subject: [PATCH] Fix sparse triangular view iterator --- Eigen/src/SparseCore/SparseTriangularView.h | 4 ++-- test/sparse_basic.cpp | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Eigen/src/SparseCore/SparseTriangularView.h b/Eigen/src/SparseCore/SparseTriangularView.h index 5cac8251d..2e53114c2 100644 --- a/Eigen/src/SparseCore/SparseTriangularView.h +++ b/Eigen/src/SparseCore/SparseTriangularView.h @@ -152,8 +152,8 @@ public: } } -// inline Index row() const { return (ArgType::Flags&RowMajorBit ? Base::outer() : this->index()); } -// inline Index col() const { return (ArgType::Flags&RowMajorBit ? this->index() : Base::outer()); } + inline Index row() const { return (ArgType::Flags&RowMajorBit ? Base::outer() : this->index()); } + inline Index col() const { return (ArgType::Flags&RowMajorBit ? this->index() : Base::outer()); } inline StorageIndex index() const { if(HasUnitDiag && m_returnOne) return internal::convert_index(Base::outer()); diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp index 9e102b742..298619e69 100644 --- a/test/sparse_basic.cpp +++ b/test/sparse_basic.cpp @@ -746,6 +746,11 @@ template void sparse_basic(const SparseMatrixType& re // check sparse-triangular to dense refMat3 = m2.template triangularView(); VERIFY_IS_APPROX(refMat3, DenseMatrix(refMat2.template triangularView())); + + // check sparse triangular view iteration-based evaluation + m2.setZero(); + VERIFY_IS_CWISE_EQUAL(m2.template triangularView().toDense(), DenseMatrix::Identity(rows, cols)); + VERIFY_IS_CWISE_EQUAL(m2.template triangularView().toDense(), DenseMatrix::Identity(rows, cols)); } // test selfadjointView