VisCalSolver2: Default solver for calibration using visibility data. More...
#include <VisCalSolver2.h>
Public Member Functions | |
VisCalSolver2 () | |
Constructor currently generic. | |
~VisCalSolver2 () | |
Destructor. | |
Bool | solve (VisEquation &viseq, SolvableVisCal &svc, SDBList &sdbs) |
Do the solve. | |
Protected Member Functions | |
SDBList & | sdbs () |
Access to fundamental external objects:. | |
VisEquation & | ve () |
SolvableVisCal & | svc () |
Int & | maxIter () |
Access to maxIter_. | |
Double & | chiSq () |
Access to chi2. | |
Vector< Double > & | chiSqV () |
Double & | lastChiSq () |
Double & | dChiSq () |
Double & | sumWt () |
Vector< Double > & | sumWtV () |
Int & | nWt () |
Int & | nPar () |
Access to parameters, & grad,hess,dp. | |
Vector< Complex > & | par () |
Vector< Bool > & | parOK () |
Vector< Float > & | parErr () |
Vector< DComplex > & | grad () |
Vector< Double > & | hess () |
Vector< Complex > & | dpar () |
Vector< Complex > & | lastPar () |
Double & | lambda () |
void | initSolve () |
Initialize solving data. | |
void | residualate2 () |
Obtain trial residuals w.r.t svc's current pars. | |
void | differentiate2 () |
Differentiate w.r.t svc's pars. | |
void | chiSquare2 () |
Calculate residuals (incl. | |
Bool | converged () |
Check for convergence. | |
void | accGradHess2 () |
Internal solving methods. | |
void | revert () |
void | solveGradHess () |
void | updatePar () |
void | optStepSize2 () |
Optimize the step parabolically. | |
void | getErrors () |
Get and print par errors. | |
void | printPar (const Int &iter) |
Private Member Functions | |
Int & | prtlev () |
Diagnostic print level. | |
Private Attributes | |
SDBList * | SDBs_ |
VisBuffer (from outside). | |
VisEquation * | ve_ |
VisEquation (from outside). | |
SolvableVisCal * | svc_ |
SVC (from outside). | |
Int | nPar_ |
Total Number of parameters. | |
Int | maxIter_ |
Maximum number of solve iterations to attempt. | |
Double | chiSq_ |
Chi2, sum wts. | |
Vector< Double > | chiSqV_ |
Double | lastChiSq_ |
Double | dChiSq_ |
Double | sumWt_ |
Vector< Double > | sumWtV_ |
Int | nWt_ |
Int | cvrgcount_ |
Vector< Complex > | par_ |
Parameter storage (these are Complex to match the VisCal solvePar). | |
Vector< Bool > | parOK_ |
Vector< Float > | parErr_ |
Vector< Complex > | lastPar_ |
Vector< Complex > | dpar_ |
Parameter update. | |
Vector< DComplex > | grad_ |
Gradient, Hessian (these are Double for precision in accumulation. | |
Vector< Double > | hess_ |
Double | lambda_ |
LM factor. | |
Bool | optstep_ |
Step optimization toggle. | |
Int | prtlev_ |
Diagnostic print level. |
VisCalSolver2: Default solver for calibration using visibility data.
Public interface
VisCal for visibility calibration (meaning solved from visibilities), Solver for solving.
VisCalSolver2 describes an interface for solving for calibration from visibility data in a VisBuffer. It hosts the communication of visibility data with otherwise generic solving mechanims. A Levenberg-Marquardt solver is supplied here by default, but it is intended that this class be the template for interfaces to third-party solving mechanisms.
It is desirable to establish the distinct communicative boundary between generic solving mechanims and the particulars of visibility data and calibration component descriptions. This class is intended to serve this purpose, by providing access to visibility data and calibration in terms of quantities necessary for least-squares (and other) style solvers.
Definition at line 93 of file VisCalSolver2.h.
casa::VisCalSolver2::VisCalSolver2 | ( | ) |
Constructor currently generic.
casa::VisCalSolver2::~VisCalSolver2 | ( | ) |
Destructor.
void casa::VisCalSolver2::accGradHess2 | ( | ) | [protected] |
Internal solving methods.
Double& casa::VisCalSolver2::chiSq | ( | ) | [inline, protected] |
void casa::VisCalSolver2::chiSquare2 | ( | ) | [protected] |
Calculate residuals (incl.
diff'd) and chi2
Vector<Double>& casa::VisCalSolver2::chiSqV | ( | ) | [inline, protected] |
Definition at line 117 of file VisCalSolver2.h.
References chiSqV_.
Bool casa::VisCalSolver2::converged | ( | ) | [protected] |
Check for convergence.
Double& casa::VisCalSolver2::dChiSq | ( | ) | [inline, protected] |
Definition at line 119 of file VisCalSolver2.h.
References dChiSq_.
void casa::VisCalSolver2::differentiate2 | ( | ) | [protected] |
Differentiate w.r.t svc's pars.
Vector<Complex>& casa::VisCalSolver2::dpar | ( | ) | [inline, protected] |
Definition at line 131 of file VisCalSolver2.h.
References dpar_.
void casa::VisCalSolver2::getErrors | ( | ) | [protected] |
Get and print par errors.
Vector<DComplex>& casa::VisCalSolver2::grad | ( | ) | [inline, protected] |
Definition at line 129 of file VisCalSolver2.h.
References grad_.
Vector<Double>& casa::VisCalSolver2::hess | ( | ) | [inline, protected] |
Definition at line 130 of file VisCalSolver2.h.
References hess_.
void casa::VisCalSolver2::initSolve | ( | ) | [protected] |
Initialize solving data.
Double& casa::VisCalSolver2::lambda | ( | ) | [inline, protected] |
Definition at line 134 of file VisCalSolver2.h.
References lambda_.
Double& casa::VisCalSolver2::lastChiSq | ( | ) | [inline, protected] |
Definition at line 118 of file VisCalSolver2.h.
References lastChiSq_.
Vector<Complex>& casa::VisCalSolver2::lastPar | ( | ) | [inline, protected] |
Definition at line 132 of file VisCalSolver2.h.
References lastPar_.
Int& casa::VisCalSolver2::maxIter | ( | ) | [inline, protected] |
Int& casa::VisCalSolver2::nPar | ( | ) | [inline, protected] |
Access to parameters, & grad,hess,dp.
Definition at line 125 of file VisCalSolver2.h.
References nPar_.
Int& casa::VisCalSolver2::nWt | ( | ) | [inline, protected] |
Definition at line 122 of file VisCalSolver2.h.
References nWt_.
void casa::VisCalSolver2::optStepSize2 | ( | ) | [protected] |
Optimize the step parabolically.
Vector<Complex>& casa::VisCalSolver2::par | ( | ) | [inline, protected] |
Definition at line 126 of file VisCalSolver2.h.
References par_.
Vector<Float>& casa::VisCalSolver2::parErr | ( | ) | [inline, protected] |
Definition at line 128 of file VisCalSolver2.h.
References parErr_.
Vector<Bool>& casa::VisCalSolver2::parOK | ( | ) | [inline, protected] |
Definition at line 127 of file VisCalSolver2.h.
References parOK_.
void casa::VisCalSolver2::printPar | ( | const Int & | iter | ) | [protected] |
Int& casa::VisCalSolver2::prtlev | ( | ) | [inline, private] |
Diagnostic print level.
Definition at line 168 of file VisCalSolver2.h.
void casa::VisCalSolver2::residualate2 | ( | ) | [protected] |
Obtain trial residuals w.r.t svc's current pars.
void casa::VisCalSolver2::revert | ( | ) | [protected] |
SDBList& casa::VisCalSolver2::sdbs | ( | ) | [inline, protected] |
Access to fundamental external objects:.
Definition at line 108 of file VisCalSolver2.h.
References SDBs_.
Bool casa::VisCalSolver2::solve | ( | VisEquation & | viseq, | |
SolvableVisCal & | svc, | |||
SDBList & | sdbs | |||
) |
Do the solve.
void casa::VisCalSolver2::solveGradHess | ( | ) | [protected] |
Double& casa::VisCalSolver2::sumWt | ( | ) | [inline, protected] |
Definition at line 120 of file VisCalSolver2.h.
References sumWt_.
Vector<Double>& casa::VisCalSolver2::sumWtV | ( | ) | [inline, protected] |
Definition at line 121 of file VisCalSolver2.h.
References sumWtV_.
SolvableVisCal& casa::VisCalSolver2::svc | ( | ) | [inline, protected] |
Definition at line 110 of file VisCalSolver2.h.
References svc_.
void casa::VisCalSolver2::updatePar | ( | ) | [protected] |
VisEquation& casa::VisCalSolver2::ve | ( | ) | [inline, protected] |
Definition at line 109 of file VisCalSolver2.h.
References ve_.
Double casa::VisCalSolver2::chiSq_ [private] |
Vector<Double> casa::VisCalSolver2::chiSqV_ [private] |
Definition at line 187 of file VisCalSolver2.h.
Referenced by chiSqV().
Int casa::VisCalSolver2::cvrgcount_ [private] |
Definition at line 193 of file VisCalSolver2.h.
Double casa::VisCalSolver2::dChiSq_ [private] |
Definition at line 189 of file VisCalSolver2.h.
Referenced by dChiSq().
Vector<Complex> casa::VisCalSolver2::dpar_ [private] |
Vector<DComplex> casa::VisCalSolver2::grad_ [private] |
Gradient, Hessian (these are Double for precision in accumulation.
Definition at line 207 of file VisCalSolver2.h.
Referenced by grad().
Vector<Double> casa::VisCalSolver2::hess_ [private] |
Definition at line 208 of file VisCalSolver2.h.
Referenced by hess().
Double casa::VisCalSolver2::lambda_ [private] |
Double casa::VisCalSolver2::lastChiSq_ [private] |
Definition at line 188 of file VisCalSolver2.h.
Referenced by lastChiSq().
Vector<Complex> casa::VisCalSolver2::lastPar_ [private] |
Definition at line 200 of file VisCalSolver2.h.
Referenced by lastPar().
Int casa::VisCalSolver2::maxIter_ [private] |
Maximum number of solve iterations to attempt.
Definition at line 183 of file VisCalSolver2.h.
Referenced by maxIter().
Int casa::VisCalSolver2::nPar_ [private] |
Int casa::VisCalSolver2::nWt_ [private] |
Definition at line 192 of file VisCalSolver2.h.
Referenced by nWt().
Bool casa::VisCalSolver2::optstep_ [private] |
Step optimization toggle.
Definition at line 214 of file VisCalSolver2.h.
Vector<Complex> casa::VisCalSolver2::par_ [private] |
Parameter storage (these are Complex to match the VisCal solvePar).
Definition at line 197 of file VisCalSolver2.h.
Referenced by par().
Vector<Float> casa::VisCalSolver2::parErr_ [private] |
Definition at line 199 of file VisCalSolver2.h.
Referenced by parErr().
Vector<Bool> casa::VisCalSolver2::parOK_ [private] |
Definition at line 198 of file VisCalSolver2.h.
Referenced by parOK().
Int casa::VisCalSolver2::prtlev_ [private] |
Diagnostic print level.
Definition at line 217 of file VisCalSolver2.h.
SDBList* casa::VisCalSolver2::SDBs_ [private] |
Double casa::VisCalSolver2::sumWt_ [private] |
Definition at line 190 of file VisCalSolver2.h.
Referenced by sumWt().
Vector<Double> casa::VisCalSolver2::sumWtV_ [private] |
Definition at line 191 of file VisCalSolver2.h.
Referenced by sumWtV().
SolvableVisCal* casa::VisCalSolver2::svc_ [private] |
VisEquation* casa::VisCalSolver2::ve_ [private] |