From 4d0a8e2f64a78e885b680b70d8d1a099bd12c705 Mon Sep 17 00:00:00 2001 From: Edward Rosten Date: Tue, 27 Nov 2012 19:08:26 +0100 Subject: [PATCH] Extended regression test for SymEigen<3> Found a bug! (not fixed yet) --- regressions/sym_eigen.cc | 12 +++++++++++- regressions/sym_eigen.txt | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/regressions/sym_eigen.cc b/regressions/sym_eigen.cc index 8e1a6ae..3bef509 100644 --- a/regressions/sym_eigen.cc +++ b/regressions/sym_eigen.cc @@ -1,3 +1,9 @@ +#undef TOON_CHECK_BOUNDS +#define TOON_CHECK_BOUNDS +#undef TOON_INITIALIZE_SNAN +#define TOON_INITIALIZE_NAN + + #include #include "regressions/regression.h" #include @@ -10,7 +16,7 @@ template void test_(const Matrix& m) { Matrix M = m; - SymEigen<> e(M); + SymEigen e(M); cout << setprecision(15); cout << e.get_evectors() << endl; cout << e.get_evalues() << endl; @@ -50,6 +56,7 @@ void test_things_(int S2, int & sorted, double & n) n = max(n, norm_inf(m * sm.get_evectors()[0] - sm.get_evalues()[0] * sm.get_evectors()[0])); } + void test_things() { int s=0; @@ -89,6 +96,9 @@ int main() test_things(); + test<3>(Data(0, 0, 0, + 0, 1, 1, + 0, 1, 2)); //Size 2 (special case) test<2>(Data( diff --git a/regressions/sym_eigen.txt b/regressions/sym_eigen.txt index f58e40c..f3b34e7 100644 --- a/regressions/sym_eigen.txt +++ b/regressions/sym_eigen.txt @@ -2,6 +2,20 @@ Sorted 0 Errors 0 +#Eigen decomposition of [0 0 0; 0 1 1; 0 1 2] + +1 0 0 +0 -0.85065080835204 0.525731112119133 +0 0.525731112119133 0.85065080835204 + +0 0.381966011250105 2.61803398874989 + + +1 0 0 +0 -0.85065080835204 0.525731112119133 +0 0.525731112119133 0.85065080835204 + +0 0.381966011250105 2.61803398874989 #Some simple matrices with easy decompositions 0 1