Class documentation of Concepts

Loading...
Searching...
No Matches

#include <constrained.hh>

Inheritance diagram for test::GolubExample:
test::ConstrainedEVP test::TestCase

Public Member Functions

 GolubExample ()
 Constructor. Sets up three matrices a, b and c.
 
virtual void run ()
 Runs the tests. Must be overwritten by the specialization.
 
void testInexactInv ()
 Test with inexact inverse iteration.
 
long getNumPassed () const
 Returns number of passed tests.
 
long getNumFailed () const
 Returns number of failed tests.
 
const ostream * getStream () const
 Returns output stream.
 
void setStream (ostream *osptr)
 Sets the output stream.
 
void _succeed ()
 Explicitly succeds a test.
 
long report () const
 
virtual void reset ()
 Resets the counters for the failed and passed tests.
 

Protected Member Functions

bool do_test (bool cond, const string &lbl, const char *fname, long lineno)
 Internal function to do a test.
 
bool do_numtest (double num, double orig, const string &lbl, const string &lbl2, const char *fname, long lineno, const double tol=1e-10)
 Internal function to do a numerical test.
 
bool do_numtest (std::complex< double > num, std::complex< double > orig, const string &lbl, const string &lbl2, const char *fname, long lineno, const double tol=1e-10)
 
void do_fail (const string &lbl, const char *fname, long lineno)
 

Protected Attributes

concepts::DummySpace< Real > spc
 
concepts::DummySpace< Real > cspc
 
concepts::DummySpace< Real > gspc
 
std::unique_ptr< concepts::Operator< Real > > a
 
concepts::SparseMatrix< Real > b
 
concepts::SparseMatrix< Real > c
 
const Real * exact_
 
const uint kmax_
 

Detailed Description

Test solver for constrained Eigenvalue problems. The example and the exact solution is taken from [1]. The constrained generalized Eigenvalue problem reads:

\[ Ax = \lambda B x\]

subject to $ Cx = 0 $, where

\[ A = \begin{pmatrix} 1 & -1 & 0 & 0 & 0 & 0 \\
-1 & 2 & -1 & 0 & 0 & 0 \\
0 & -1 & 2 & -1 & 0 & 0 \\
0 & 0 & -1 & 2 & -1 & 0 \\
0 & 0 & 0 & -1 & 2 & -1 \\
0 & 0 & 0 & 0 & -1 & 2
\end{pmatrix}, B = \begin{pmatrix} 6 & 5 & 4 & 3 & 2 & 1 \\
5 & 5 & 4 & 3 & 2 & 1 \\
4 & 4 & 4 & 3 & 2 & 1 \\
3 & 3 & 3 & 3 & 2 & 1 \\
2 & 2 & 2 & 2 & 2 & 1 \\
1 & 1 & 1 & 1 & 1 & 1
\end{pmatrix}, C^\top = \begin{pmatrix} 1 & 1 & 8 & 5 \\
1 & -1 & 2 & 1 \\
1 & 1 & 8 & 5 \\
1 & -1 & 2 & 1 \\
1 & 1 & 8 & 5 \\
1 & -1 & 2 & 1
\end{pmatrix}. \]

The exact Eigenvalues of this problem are 0.170039264847579, 1.23788202328080, 4.9176011926100, 9.2744775192616.

Author
Philipp Frauenfelder, 2004
See also
[1] Gene H. Golub and Richard Underwood, Stationary Values of the Ratio of Quadratic Forms Subject to Linear Constraints, ZAMP Vol. 21, 1970, p. 318-326.

Definition at line 86 of file constrained.hh.

Constructor & Destructor Documentation

◆ ~GolubExample()

virtual test::GolubExample::~GolubExample ( )
inlinevirtual

Definition at line 90 of file constrained.hh.

Member Function Documentation

◆ _succeed()

void test::TestCase::_succeed ( )
inlineinherited

Explicitly succeds a test.

Definition at line 112 of file testcase.hh.

◆ do_fail()

void test::TestCase::do_fail ( const string &  lbl,
const char *  fname,
long  lineno 
)
protectedinherited

Internal function to report a failed test (besides increasing the failed counter)

◆ getNumFailed()

long test::TestCase::getNumFailed ( ) const
inlineinherited

Returns number of failed tests.

Definition at line 105 of file testcase.hh.

◆ getNumPassed()

long test::TestCase::getNumPassed ( ) const
inlineinherited

Returns number of passed tests.

Definition at line 103 of file testcase.hh.

◆ getStream()

const ostream * test::TestCase::getStream ( ) const
inlineinherited

Returns output stream.

Definition at line 107 of file testcase.hh.

◆ report()

long test::TestCase::report ( ) const
inherited

Prints a report on the number of passed and failed tests to the output stream.

Returns
Number of failed tests.

◆ reset()

virtual void test::TestCase::reset ( )
inlinevirtualinherited

Resets the counters for the failed and passed tests.

Definition at line 119 of file testcase.hh.

◆ run()

virtual void test::ConstrainedEVP::run ( )
virtualinherited

Runs the tests. Must be overwritten by the specialization.

Implements test::TestCase.

◆ setStream()

void test::TestCase::setStream ( ostream *  osptr)
inlineinherited

Sets the output stream.

Definition at line 109 of file testcase.hh.

Member Data Documentation

◆ a

std::unique_ptr<concepts::Operator<Real> > test::ConstrainedEVP::a
protectedinherited

Definition at line 50 of file constrained.hh.

◆ b

concepts::SparseMatrix<Real> test::ConstrainedEVP::b
protectedinherited

Definition at line 51 of file constrained.hh.

◆ c

concepts::SparseMatrix<Real> test::ConstrainedEVP::c
protectedinherited

Definition at line 51 of file constrained.hh.

◆ cspc

concepts::DummySpace<Real> test::ConstrainedEVP::cspc
protectedinherited

Definition at line 49 of file constrained.hh.

◆ exact_

const Real* test::ConstrainedEVP::exact_
protectedinherited

Definition at line 52 of file constrained.hh.

◆ gspc

concepts::DummySpace<Real> test::ConstrainedEVP::gspc
protectedinherited

Definition at line 49 of file constrained.hh.

◆ kmax_

const uint test::ConstrainedEVP::kmax_
protectedinherited

Definition at line 53 of file constrained.hh.

◆ spc

concepts::DummySpace<Real> test::ConstrainedEVP::spc
protectedinherited

Definition at line 49 of file constrained.hh.


The documentation for this class was generated from the following file: