From 7a9988ebb6e87da84134901c568c00a5cb561809 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 14 Dec 2009 10:25:21 +0100 Subject: [PATCH] fix spasre triangular solve for row major lower matrices --- Eigen/src/Sparse/TriangularSolver.h | 2 ++ test/sparse_solvers.cpp | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Eigen/src/Sparse/TriangularSolver.h b/Eigen/src/Sparse/TriangularSolver.h index 2c5b485b0..d24756ba1 100644 --- a/Eigen/src/Sparse/TriangularSolver.h +++ b/Eigen/src/Sparse/TriangularSolver.h @@ -52,6 +52,8 @@ struct ei_sparse_solve_triangular_selector void sparse_solvers(int rows, int cols) VERIFY_IS_APPROX(refMat2.template triangularView().solve(vec2), m2.template triangularView().solve(vec3)); - // TODO test row major + // lower - transpose + initSparse(density, refMat2, m2, ForceNonZeroDiag|MakeLowerTriangular, &zeroCoords, &nonzeroCoords); + VERIFY_IS_APPROX(refMat2.template marked().transpose().solveTriangular(vec2), + m2.template marked().transpose().solveTriangular(vec3)); + + // upper - transpose + initSparse(density, refMat2, m2, ForceNonZeroDiag|MakeUpperTriangular, &zeroCoords, &nonzeroCoords); + VERIFY_IS_APPROX(refMat2.template marked().transpose().solveTriangular(vec2), + m2.template marked().transpose().solveTriangular(vec3)); SparseMatrix matB(rows, rows); DenseMatrix refMatB = DenseMatrix::Zero(rows, rows);