aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-11-14 09:55:25 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-11-14 09:55:25 +0000
commit139529e97b76c250c13474a1ebc9f6dbf27b6115 (patch)
tree78451fa6c5aed1804788188b2076c6e3d690d03b /test
parent86ccd99d8d9a87d03f2f327766a02cc13849b54d (diff)
* add .imag() function
* fix a very old bug in EigenSolver that I had completely forgotten (thanks to Timothy to refresh my mind) * fix doc of Matrix::Map
Diffstat (limited to 'test')
-rw-r--r--test/eigensolver.cpp21
1 files changed, 3 insertions, 18 deletions
diff --git a/test/eigensolver.cpp b/test/eigensolver.cpp
index fed6ba9ba..aeec1dc97 100644
--- a/test/eigensolver.cpp
+++ b/test/eigensolver.cpp
@@ -130,27 +130,13 @@ template<typename MatrixType> void eigensolver(const MatrixType& m)
MatrixType a1 = MatrixType::Random(rows,cols);
MatrixType symmA = a.adjoint() * a + a1.adjoint() * a1;
-// MatrixType b = MatrixType::Random(rows,cols);
-// MatrixType b1 = MatrixType::Random(rows,cols);
-// MatrixType symmB = b.adjoint() * b + b1.adjoint() * b1;
-
EigenSolver<MatrixType> ei0(symmA);
+ VERIFY_IS_APPROX(symmA * ei0.pseudoEigenvectors(), ei0.pseudoEigenvectors() * ei0.pseudoEigenvalueMatrix());
VERIFY_IS_APPROX((symmA.template cast<Complex>()) * (ei0.pseudoEigenvectors().template cast<Complex>()),
(ei0.pseudoEigenvectors().template cast<Complex>()) * (ei0.eigenvalues().asDiagonal()));
-// a = a /*+ symmA*/;
EigenSolver<MatrixType> ei1(a);
-
- IOFormat OctaveFmt(4, AlignCols, ", ", ";\n", "", "", "[", "]");
-// std::cerr << "==============\n" << a.format(OctaveFmt) << "\n\n" << ei1.eigenvalues().transpose() << "\n\n";
-// std::cerr << a * ei1.pseudoEigenvectors() << "\n\n" << ei1.pseudoEigenvectors() * ei1.pseudoEigenvalueMatrix() << "\n\n\n";
-
-// VERIFY_IS_APPROX(a * ei1.pseudoEigenvectors(), ei1.pseudoEigenvectors() * ei1.pseudoEigenvalueMatrix());
-
-
-// std::cerr << a.format(OctaveFmt) << "\n\n";
-// std::cerr << ei1.eigenvectors().format(OctaveFmt) << "\n\n";
-// std::cerr << a.template cast<Complex>() * ei1.eigenvectors() << "\n\n" << ei1.eigenvectors() * ei1.eigenvalues().asDiagonal().eval() << "\n\n";
+ VERIFY_IS_APPROX(a * ei1.pseudoEigenvectors(), ei1.pseudoEigenvectors() * ei1.pseudoEigenvalueMatrix());
VERIFY_IS_APPROX(a.template cast<Complex>() * ei1.eigenvectors(),
ei1.eigenvectors() * ei1.eigenvalues().asDiagonal().eval());
@@ -167,8 +153,7 @@ void test_eigensolver()
CALL_SUBTEST( selfadjointeigensolver(MatrixXd(19,19)) );
CALL_SUBTEST( eigensolver(Matrix4f()) );
- // FIXME the test fails for larger matrices
-// CALL_SUBTEST( eigensolver(MatrixXd(7,7)) );
+ CALL_SUBTEST( eigensolver(MatrixXd(17,17)) );
}
}