From e09ab5838bc54bf419b3033fb8d26f4ddc448a15 Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Wed, 30 Mar 2005 18:11:36 +0000 Subject: [PATCH] eigenvalues git-svn-id: https://svn.dealii.org/trunk@10322 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/lac/lapack.cc | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/tests/lac/lapack.cc b/tests/lac/lapack.cc index 31d5f1688b..a6496443f0 100644 --- a/tests/lac/lapack.cc +++ b/tests/lac/lapack.cc @@ -22,12 +22,19 @@ #include #include +/* + * Eigenvalues and -vectors of this system are + * lambda = 1 v = (1, 1, 1, 1) + * lambda = 5 v = (1,-1, 0, 0) + * lambda = 5 v = (0, 1,-1, 0) + * lambda = 5 v = (0, 0, 1,-1) + */ const double symm[] = { - 4., 1., -1., 1., - 1., 4., 1., -1., - -1., 1., 4., 1., - 1., -1., 4., 1. + 4., -1., -1., -1., + -1., 4., -1., -1., + -1., -1., 4., -1., + -1., -1., -1., 4. }; const double rect[] = @@ -41,7 +48,7 @@ const double rect[] = int main() { std::ofstream logfile("lapack.output"); - logfile.precision(4); + logfile.precision(3); deallog.attach(logfile); deallog.depth_console(0); @@ -96,11 +103,20 @@ int main() LA.reinit(4,4); A.fill(symm); LA = A; + LA.compute_eigenvalues(); + for (unsigned int i=0;i lambda = LA.eigenvalue(i); + deallog << "Eigenvalues " + << (int) (lambda.real()+.0001) << '\t' + << (int) (lambda.imag()+.0001) << std::endl; + } + v1.reinit(4); v2.reinit(4); #else - // If lapack is not available, this + // If lapack is not available, this // test will not complain. deallog.push("Rect"); deallog << "operator= (const FullMatrix&) ok" << std::endl; @@ -108,6 +124,10 @@ int main() deallog << "vmult_add ok" << std::endl; deallog << "Tvmult ok" << std::endl; deallog << "Tvmult_add ok" << std::endl; + deallog << "Eigenvalues 5\t0" << std::endl; + deallog << "Eigenvalues 1\t0" << std::endl; + deallog << "Eigenvalues 5\t0" << std::endl; + deallog << "Eigenvalues 5\t0" << std::endl; deallog.pop(); #endif } -- 2.39.5