19{
20
21 SlepcSession::getInstance(argc,argv);
22
23 cout << "\n";
24 cout << "=== EVP: real eigenvalue problem ====\n";
25 cout << "\n";
26
29 a( 0, 0 ) = 1;
30 a( 0, 1 ) = 2;
31 a( 1, 0 ) = 4;
32 a( 1, 1 ) = 3;
33
34 b( 0, 0 ) = 1;
35 b( 1, 1 ) = 1;
36
37
39
40
41 SparseLinearEigenSystem<double> system( &a, &b );
42 try
43 {
44 system.eigensolve();
45 }
46 catch (const std::runtime_error &error )
47 {
48 cout << " \033[1;31;48m * FAILED THROUGH EXCEPTION BEING RAISED \033[0m\n";
49 return 1;
50 }
51
52
53 system.set_shift( 4 );
54 system.tag_eigenvalues_disc( +1, 2 );
55
56 lambdas = system.get_tagged_eigenvalues();
57 const double tol = 1.e-13;
58
59
60 if ( std::abs( lambdas[ 0 ] - 5.0 ) < tol )
61 {
62 cout << "\033[1;32;48m * PASSED \033[0m\n";
63 return 0;
64 }
65
66 cout << "\033[1;31;48m * FAILED \033[0m\n";
67 cout.precision( 12 );
68 cout << " Final error = " << std::abs( lambdas[ 0 ] - 5.0 ) << "\n";
70 return 1;
71}
An DenseVector class – a dense vector object.
void dump() const
Dump to std::cout.
A matrix class that constructs a SPARSE matrix as a row major std::vector of SparseVectors.