ergo
per::Perturbation Class Reference

#include <Perturbation.h>

List of all members.

Public Member Functions

 Perturbation (std::vector< Tmatrix * > const &F, std::vector< Tmatrix * > &D, mat::Interval< Treal > const &gap, mat::Interval< Treal > const &allEigs, Treal const deltaMax, Treal const errorTol, mat::normType const norm, Tvector &vect)
void perturb ()
void checkIdempotencies (std::vector< Treal > &idemErrors)
template<typename TmatNoSymm >
void checkCommutators (std::vector< Treal > &commErrors, TmatNoSymm const &dummyMat)
void checkMaxSubspaceError (Treal &subsError)

Protected Member Functions

void dryRun ()
 Dry run to obtain some needed numbers.
void run ()

Protected Attributes

std::vector< Tmatrix * > const & F
std::vector< Tmatrix * > & X
mat::Interval< Treal > gap
mat::Interval< Treal > const & allEigs
Treal deltaMax
Treal errorTol
mat::normType const norm
Tvector & vect
int nIter
std::vector< Treal > threshVal
std::vector< Treal > sigma

Constructor & Destructor Documentation

per::Perturbation::Perturbation ( std::vector< Tmatrix * > const &  F,
std::vector< Tmatrix * > &  D,
mat::Interval< Treal > const &  gap,
mat::Interval< Treal > const &  allEigs,
Treal const  deltaMax,
Treal const  errorTol,
mat::normType const  norm,
Tvector &  vect 
)
Parameters:
FVector with matrices (input).
DVector with matrices (output).
gapBand gap.
allEigsInterval containing all eigenvalues of X0 + delta*X1 + delta^2*X2 + ... for all delta in [0, deltaMax] for initial X.
deltaMaxLargest allowed delta.
errorTolError tolerance.
normNorm for truncation etc.
vectVector.

References X, F, allEigs, mat::Interval::low(), mat::Interval::upp(), and gap.


Member Function Documentation

template<typename TmatNoSymm >
void per::Perturbation::checkCommutators ( std::vector< Treal > &  commErrors,
TmatNoSymm const &  dummyMat 
)

Referenced by mainFun().

void per::Perturbation::checkIdempotencies ( std::vector< Treal > &  idemErrors)

Referenced by mainFun().

void per::Perturbation::checkMaxSubspaceError ( Treal &  subsError)

Referenced by mainFun().

void per::Perturbation::dryRun ( ) [protected]

Dry run to obtain some needed numbers.

After call to this function we know:

  • number of iterations (nIter),
  • threshold values (threshVal), and
  • polyunomials to choose (sigma = -1 | = 1)

If requested accuracy is too high or gap too small, an exception is thrown.

References mat::Interval::low(), mat::Interval::upp(), mat::Interval::midPoint(), mat::Interval::length(), template_blas_fabs(), and mat::Interval::empty().

Referenced by perturb().

void per::Perturbation::perturb ( ) [inline]

References dryRun(), and run().

Referenced by mainFun().

void per::Perturbation::run ( ) [protected]

Referenced by perturb().


Member Data Documentation

mat::Interval<Treal> const& per::Perturbation::allEigs [protected]

Referenced by Perturbation().

Treal per::Perturbation::deltaMax [protected]
Treal per::Perturbation::errorTol [protected]
std::vector<Tmatrix *> const& per::Perturbation::F [protected]

Referenced by Perturbation().

Referenced by Perturbation().

int per::Perturbation::nIter [protected]
std::vector<Treal> per::Perturbation::sigma [protected]
std::vector<Treal> per::Perturbation::threshVal [protected]
Tvector& per::Perturbation::vect [protected]
std::vector<Tmatrix *>& per::Perturbation::X [protected]

Referenced by Perturbation().


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