aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/eigensolver_generic.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-04-14 11:43:08 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-04-14 11:43:08 +0200
commit0587db8bf5ca5d5eb6fb8df1c02abddd5b5718ba (patch)
treef1e8f6b479cf96e4454b6bdc78a5c1b5efb6e245 /test/eigensolver_generic.cpp
parent91288e9bf9d6a9c3d63a9152e863b4390d0a40c7 (diff)
bug #793: fix overflow in EigenSolver and add respective regression unit test
Diffstat (limited to 'test/eigensolver_generic.cpp')
-rw-r--r--test/eigensolver_generic.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/eigensolver_generic.cpp b/test/eigensolver_generic.cpp
index 005af81eb..91383b5cf 100644
--- a/test/eigensolver_generic.cpp
+++ b/test/eigensolver_generic.cpp
@@ -121,5 +121,18 @@ void test_eigensolver_generic()
}
);
+ // regression test for bug 793
+#ifdef EIGEN_TEST_PART_2
+ {
+ MatrixXd a(3,3);
+ a << 0, 0, 1,
+ 1, 1, 1,
+ 1, 1e+200, 1;
+ Eigen::EigenSolver<MatrixXd> eig(a);
+ VERIFY_IS_APPROX(a * eig.pseudoEigenvectors(), eig.pseudoEigenvectors() * eig.pseudoEigenvalueMatrix());
+ VERIFY_IS_APPROX(a * eig.eigenvectors(), eig.eigenvectors() * eig.eigenvalues().asDiagonal());
+ }
+#endif
+
TEST_SET_BUT_UNUSED_VARIABLE(s)
}