aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cholesky.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2012-04-10 15:40:36 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2012-04-10 15:40:36 +0200
commitb0cf95619e0777194fcc2d1337a39ef5357a4233 (patch)
tree7396c2cbbaf566eea6e705f1babe7748465ca033 /test/cholesky.cpp
parent311c5b87a3cba60dd83273212228b5ce800d398c (diff)
fix compilation of "somedensematrix.llt().matrixL().transpose()" (missing constness on the return types)
Diffstat (limited to 'test/cholesky.cpp')
-rw-r--r--test/cholesky.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/cholesky.cpp b/test/cholesky.cpp
index 1a1b2eeb5..4f2516d26 100644
--- a/test/cholesky.cpp
+++ b/test/cholesky.cpp
@@ -124,6 +124,11 @@ template<typename MatrixType> void cholesky(const MatrixType& m)
MatrixType neg = -symmLo;
chollo.compute(neg);
VERIFY(chollo.info()==NumericalIssue);
+
+ VERIFY_IS_APPROX(MatrixType(chollo.matrixL().transpose().conjugate()), MatrixType(chollo.matrixU()));
+ VERIFY_IS_APPROX(MatrixType(chollo.matrixU().transpose().conjugate()), MatrixType(chollo.matrixL()));
+ VERIFY_IS_APPROX(MatrixType(cholup.matrixL().transpose().conjugate()), MatrixType(cholup.matrixU()));
+ VERIFY_IS_APPROX(MatrixType(cholup.matrixU().transpose().conjugate()), MatrixType(cholup.matrixL()));
}
// LDLT
@@ -152,6 +157,11 @@ template<typename MatrixType> void cholesky(const MatrixType& m)
matX = ldltup.solve(matB);
VERIFY_IS_APPROX(symm * matX, matB);
+ VERIFY_IS_APPROX(MatrixType(ldltlo.matrixL().transpose().conjugate()), MatrixType(ldltlo.matrixU()));
+ VERIFY_IS_APPROX(MatrixType(ldltlo.matrixU().transpose().conjugate()), MatrixType(ldltlo.matrixL()));
+ VERIFY_IS_APPROX(MatrixType(ldltup.matrixL().transpose().conjugate()), MatrixType(ldltup.matrixU()));
+ VERIFY_IS_APPROX(MatrixType(ldltup.matrixU().transpose().conjugate()), MatrixType(ldltup.matrixL()));
+
if(MatrixType::RowsAtCompileTime==Dynamic)
{
// note : each inplace permutation requires a small temporary vector (mask)