28 #ifndef SYNTHESIS_VISCALSOL_H
29 #define SYNTHESIS_VISCALSOL_H
casacore::Vector< casacore::Bool > parOK_
casacore::Array< casacore::Complex > & dSrc()
casacore::Double & dChiSq()
casacore::Vector< casacore::Complex > dcalpar_
casacore::Array< casacore::Complex > dR_
casacore::Int & maxIter()
Access to maxIter_.
casacore::Cube< casacore::Complex > R_
Residual/Differentiation caches.
casacore::Cube< casacore::Complex > & R()
Accessors to current svb's (differentiated) Residuals.
casacore::Double & lastChiSq()
casacore::Double & lambda()
void chiSquare()
Calculate residuals (incl.
casacore::Vector< casacore::Complex > & lastCalPar()
casacore::Double lastChiSq_
casacore::Vector< casacore::Complex > lastSrcPar_
casacore::Vector< casacore::Complex > & srcPar()
casacore::Double chiSq_
Chi2, sum wts.
casacore::Int prtlev_
Diagnostic print level.
casacore::Vector< casacore::Complex > & dSrcPar()
casacore::Vector< casacore::Complex > & dpar()
casacore::Int nTotalPar_
Total Number of parameters.
casacore::Double & sumWt()
casacore::Matrix< casacore::Bool > Rflg_
VisBuffer & svb()
Access to fundamental external objects:
VisCalSolver()
Constructor currently generic.
casacore::Vector< casacore::Double > hess_
~VisCalSolver()
Destructor.
casacore::Vector< casacore::DComplex > & grad()
casacore::Vector< casacore::Complex > & dCalPar()
casacore::Vector< casacore::Double > chiSqV_
casacore::Vector< casacore::Bool > & parOK()
casacore::Bool converged()
Check for convergence.
casacore::Int & nSrcPar()
casacore::Array< casacore::Complex > & dR()
void initSolve()
Initialize solving data.
casacore::Bool solve(VisEquation &viseq, SolvableVisCal &svc, VisBuffer &svb)
Do the solve.
casacore::Double & chiSq()
Access to chi2.
void getErrors()
Get and print par errors.
casacore::Bool optstep_
Step optimization toggle.
casacore::Vector< casacore::Float > parErr_
casacore::Double lambda_
LM factor.
casacore::Vector< casacore::Complex > srcPar_
casacore::Int & prtlev()
Diagnostic print level.
bool Bool
Define the standard types used by Casacore.
casacore::Int & nTotalPar()
Access to parameters, & grad,hess,dp.
casacore::Vector< casacore::Float > & parErr()
casacore::Vector< casacore::DComplex > grad_
Gradient, Hessian (these are casacore::Double for precision in accumulation.
void differentiate()
Differentiate the svb w.r.t svc's pars.
A class to group separately averaged VisBuffers.
casacore::Array< casacore::Complex > dSrc_
Derivative wrt Q and U.
casacore::Vector< casacore::Double > & chiSqV()
VisEquation * ve_
VisEquation (from outside)
SolvableVisCal * svc_
SVC (from outside)
casacore::Vector< casacore::Complex > & par()
casacore::Int maxIter_
Maximum number of solve iterations to attempt.
casacore::Vector< casacore::Double > & hess()
casacore::Vector< casacore::Complex > & lastSrcPar()
casacore::Vector< casacore::Complex > lastCalPar_
void accGradHess()
Internal solving methods.
void residualate()
Obtain trial residuals w.r.t svc's current pars.
VisBuffers encapsulate one chunk of visibility data for processing.
casacore::Vector< casacore::Complex > par_
Parameter storage (these are casacore::Complex to match the VisCal solvePar)
casacore::Matrix< casacore::Bool > & Rflg()
VisCalSolver: Default solver for calibration using visibility data.
VisBuffer * svb_
VisBuffer (from outside)
casacore::Vector< casacore::Complex > dpar_
Parameter update.
void optStepSize()
Optimize the step parabolically.
casacore::Int & nCalPar()
void printPar(const casacore::Int &iter)
casacore::Vector< casacore::Complex > dsrcpar_