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);