ergo
|
#include <Perturbation.h>
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 |
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 | ||
) |
F | Vector with matrices (input). |
D | Vector with matrices (output). |
gap | Band gap. |
allEigs | Interval containing all eigenvalues of X0 + delta*X1 + delta^2*X2 + ... for all delta in [0, deltaMax] for initial X. |
deltaMax | Largest allowed delta. |
errorTol | Error tolerance. |
norm | Norm for truncation etc. |
vect | Vector. |
References X, F, allEigs, mat::Interval::low(), mat::Interval::upp(), and gap.
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:
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] |
void per::Perturbation::run | ( | ) | [protected] |
Referenced by perturb().
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().
mat::Interval<Treal> per::Perturbation::gap [protected] |
Referenced by Perturbation().
int per::Perturbation::nIter [protected] |
mat::normType const per::Perturbation::norm [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().