diff options
author | Gael Guennebaud <g.gael@free.fr> | 2010-06-03 22:22:14 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2010-06-03 22:22:14 +0200 |
commit | e64460d5d003448e090bac23b9ddc93e7af2ca5a (patch) | |
tree | acd2ec2edf05ffff69e112a62774d60b2422420f /test | |
parent | 4159db979d8a502d628f3ec7fd6f49ded84165d4 (diff) |
LDLT: make it honors the Lower/Upper directive and make it works inplace
Diffstat (limited to 'test')
-rw-r--r-- | test/cholesky.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/test/cholesky.cpp b/test/cholesky.cpp index 0ae26c7d5..d403af7ba 100644 --- a/test/cholesky.cpp +++ b/test/cholesky.cpp @@ -118,11 +118,18 @@ template<typename MatrixType> void cholesky(const MatrixType& m) } { - LDLT<SquareMatrixType> ldlt(symm); - VERIFY_IS_APPROX(symm, ldlt.reconstructedMatrix()); - vecX = ldlt.solve(vecB); + LDLT<SquareMatrixType,Lower> ldltlo(symm); + VERIFY_IS_APPROX(symm, ldltlo.reconstructedMatrix()); + vecX = ldltlo.solve(vecB); VERIFY_IS_APPROX(symm * vecX, vecB); - matX = ldlt.solve(matB); + matX = ldltlo.solve(matB); + VERIFY_IS_APPROX(symm * matX, matB); + + LDLT<SquareMatrixType,Upper> ldltup(symm); + VERIFY_IS_APPROX(symm, ldltup.reconstructedMatrix()); + vecX = ldltup.solve(vecB); + VERIFY_IS_APPROX(symm * vecX, vecB); + matX = ldltup.solve(matB); VERIFY_IS_APPROX(symm * matX, matB); } |