aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/sparse_solvers.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-12-14 10:25:21 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-12-14 10:25:21 +0100
commit7a9988ebb6e87da84134901c568c00a5cb561809 (patch)
tree29958cf762066b360bbf04937437122abee1a423 /test/sparse_solvers.cpp
parent9facdaf7b9fa65d7f669af0bfabd34e23698f446 (diff)
fix spasre triangular solve for row major lower matrices
Diffstat (limited to 'test/sparse_solvers.cpp')
-rw-r--r--test/sparse_solvers.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/sparse_solvers.cpp b/test/sparse_solvers.cpp
index 24107977c..b88fa1cc9 100644
--- a/test/sparse_solvers.cpp
+++ b/test/sparse_solvers.cpp
@@ -73,7 +73,15 @@ template<typename Scalar> void sparse_solvers(int rows, int cols)
VERIFY_IS_APPROX(refMat2.template triangularView<UpperTriangular>().solve(vec2),
m2.template triangularView<UpperTriangular>().solve(vec3));
- // TODO test row major
+ // lower - transpose
+ initSparse<Scalar>(density, refMat2, m2, ForceNonZeroDiag|MakeLowerTriangular, &zeroCoords, &nonzeroCoords);
+ VERIFY_IS_APPROX(refMat2.template marked<LowerTriangular>().transpose().solveTriangular(vec2),
+ m2.template marked<LowerTriangular>().transpose().solveTriangular(vec3));
+
+ // upper - transpose
+ initSparse<Scalar>(density, refMat2, m2, ForceNonZeroDiag|MakeUpperTriangular, &zeroCoords, &nonzeroCoords);
+ VERIFY_IS_APPROX(refMat2.template marked<UpperTriangular>().transpose().solveTriangular(vec2),
+ m2.template marked<UpperTriangular>().transpose().solveTriangular(vec3));
SparseMatrix<Scalar> matB(rows, rows);
DenseMatrix refMatB = DenseMatrix::Zero(rows, rows);