Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Attributes
test::GolubExample Class Reference

Test solver for constrained Eigenvalue problems. More...

#include <constrained.hh>

Inheritance diagram for test::GolubExample:
Inheritance graph
[legend]
Collaboration diagram for test::GolubExample:
Collaboration graph
[legend]

List of all members.

Public Member Functions

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

Protected Member Functions

void do_fail (const string &lbl, const char *fname, long lineno)
 Internal function to report a failed test (besides increasing the failed counter)
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)
bool do_test (bool cond, const string &lbl, const char *fname, long lineno)
 Internal function to do a test.

Protected Attributes

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

Static Private Attributes

static const Real exact [4]

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 83 of file constrained.hh.


Constructor & Destructor Documentation

test::GolubExample::GolubExample ( )

Constructor. Sets up three matrices a, b and c.

virtual test::GolubExample::~GolubExample ( ) [inline, virtual]

Definition at line 87 of file constrained.hh.


Member Function Documentation

void test::TestCase::_succeed ( ) [inline, inherited]

Explicitly succeds a test.

Definition at line 109 of file testcase.hh.

void test::TestCase::do_fail ( const string &  lbl,
const char *  fname,
long  lineno 
) [protected, inherited]

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

bool test::TestCase::do_numtest ( double  num,
double  orig,
const string &  lbl,
const string &  lbl2,
const char *  fname,
long  lineno,
const double  tol = 1e-10 
) [protected, inherited]

Internal function to do a numerical test.

bool test::TestCase::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 
) [protected, inherited]
bool test::TestCase::do_test ( bool  cond,
const string &  lbl,
const char *  fname,
long  lineno 
) [protected, inherited]

Internal function to do a test.

long test::TestCase::getNumFailed ( ) const [inline, inherited]

Returns number of failed tests.

Definition at line 102 of file testcase.hh.

long test::TestCase::getNumPassed ( ) const [inline, inherited]

Returns number of passed tests.

Definition at line 100 of file testcase.hh.

const ostream* test::TestCase::getStream ( ) const [inline, inherited]

Returns output stream.

Definition at line 104 of file testcase.hh.

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.
virtual void test::TestCase::reset ( ) [inline, virtual, inherited]

Resets the counters for the failed and passed tests.

Definition at line 116 of file testcase.hh.

virtual void test::ConstrainedEVP::run ( ) [virtual, inherited]

Runs the tests. Must be overwritten by the specialization.

Implements test::TestCase.

void test::TestCase::setStream ( ostream *  osptr) [inline, inherited]

Sets the output stream.

Definition at line 106 of file testcase.hh.

void test::ConstrainedEVP::testInexactInv ( ) [inherited]

Test with inexact inverse iteration.


Member Data Documentation

std::auto_ptr<concepts::Operator<Real> > test::ConstrainedEVP::a [protected, inherited]

Definition at line 47 of file constrained.hh.

concepts::SparseMatrix<Real> test::ConstrainedEVP::b [protected, inherited]

Definition at line 48 of file constrained.hh.

concepts::SparseMatrix<Real> test::ConstrainedEVP::c [protected, inherited]

Definition at line 48 of file constrained.hh.

concepts::DummySpace<Real> test::ConstrainedEVP::cspc [protected, inherited]

Definition at line 46 of file constrained.hh.

const Real test::GolubExample::exact[4] [static, private]

Definition at line 89 of file constrained.hh.

const Real* test::ConstrainedEVP::exact_ [protected, inherited]

Definition at line 49 of file constrained.hh.

concepts::DummySpace<Real> test::ConstrainedEVP::gspc [protected, inherited]

Definition at line 46 of file constrained.hh.

const uint test::ConstrainedEVP::kmax_ [protected, inherited]

Definition at line 50 of file constrained.hh.

concepts::DummySpace<Real> test::ConstrainedEVP::spc [protected, inherited]

Definition at line 46 of file constrained.hh.


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

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)