Solve the measurement equation by non-linear least squares minimization. More...

#include <ReceptionModelSolver.h>

Inheritance diagram for Calibration::ReceptionModel::Solver:
MEAL::LeastSquares Reference::Able Reference::HeapTracked Calibration::SolveCeres Calibration::SolveGSL Calibration::SolveMEAL

Public Member Functions

virtual Solverclone () const =0
 Return a new, copy-constructed clone.
 
void set_equation (ReceptionModel *)
 Set the measurement equation to be solved.
 
void add_convergence_condition (Functor< bool(ReceptionModel *) >)
 Add a convergence condition. More...
 
void add_acceptance_condition (Functor< bool(ReceptionModel *) >)
 Add an acceptance condition.
 
virtual void solve ()
 Solve the measurement equations by least squares minimization. More...
 
void set_verbosity (unsigned level)
 Set the verbosity level (0 = quiet, 3 = most verbose)
 
unsigned get_verbosity () const
 
- Public Member Functions inherited from MEAL::LeastSquares
virtual std::string get_name () const=0
 
void set_maximum_iterations (unsigned maximum_iterations)
 
unsigned get_maximum_iterations () const
 
void set_convergence_chisq (float chisq)
 
void set_convergence_delta (float delta_parameters)
 
void set_maximum_reduced_chisq (float maximum_reduced_chisq)
 
void set_debug (bool flag=true)
 
void set_solved (bool val)
 
bool get_solved () const
 
void set_singular (bool val)
 
bool get_singular () const
 
unsigned get_iterations () const
 
float get_chisq () const
 
unsigned get_nfree () const
 
unsigned get_nparam_infit () const
 
unsigned get_ndat_constraint () const
 
void get_covariance (matrix &c) const
 
- Public Member Functions inherited from Reference::Able
 Able (const Able &)
 
Ableoperator= (const Able &)
 
unsigned get_reference_count () const
 
- Public Member Functions inherited from Reference::HeapTracked
 HeapTracked (const HeapTracked &)
 
HeapTrackedoperator= (const HeapTracked &)
 
bool __is_on_heap () const
 

Static Public Attributes

static bool report_chisq = false
 report the reduced chisq on completion
 

Protected Member Functions

virtual void fit ()=0
 The fit is performed by derived classes.
 
void count_infit ()
 Count the number of parameters to be fit. More...
 
void count_constraint ()
 Count the total number of constraints (one-dimensional data)
 
void check_constraints ()
 
void set_variances ()
 
void check_solution ()
 
std::vector< CoherencyMeasurementSet > & get_data ()
 The observations used to constrain the measurement equations.
 
- Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
 
void __dereference (bool auto_delete=true) const
 

Protected Attributes

std::vector< Functor< bool(ReceptionModel *) > > convergence_condition
 Additional convergence conditions.
 
std::vector< Functor< bool(ReceptionModel *) > > acceptance_condition
 Additional acceptance conditions.
 
std::string prefit_report_filename
 Filename to which a pre-fit report will be written.
 
Reference::To< ReceptionModel, false > equation
 The measurement equation to be solved.
 
unsigned verbose
 Verbosity level.
 
- Protected Attributes inherited from MEAL::LeastSquares
unsigned maximum_iterations
 
float convergence_chisq
 
float convergence_delta
 
float maximum_reduced
 
unsigned iterations
 
float best_chisq
 
unsigned nfree
 
unsigned nparam_infit
 
unsigned ndat_constraint
 
bool debug
 
bool solved
 
bool singular
 
matrix covariance
 

Additional Inherited Members

- Static Public Member Functions inherited from Reference::Able
static size_t get_instance_count ()
 
- Static Public Member Functions inherited from Reference::HeapTracked
static void * operator new (size_t size, void *ptr=0)
 
static void operator delete (void *location, void *ptr)
 
static void operator delete (void *location)
 
static size_t get_heap_queue_size ()
 

Detailed Description

Solve the measurement equation by non-linear least squares minimization.

Member Function Documentation

◆ add_convergence_condition()

void Calibration::ReceptionModel::Solver::add_convergence_condition ( Functor< bool(ReceptionModel *) >  condition)

Add a convergence condition.

Add a convergence conditions.

◆ count_infit()

void Calibration::ReceptionModel::Solver::count_infit ( )
protected

Count the number of parameters to be fit.

Count the number of parameters that are to be fit, set nparam_infit

◆ solve()

void Calibration::ReceptionModel::Solver::solve ( )
virtual

Solve the measurement equations by least squares minimization.

Uses the Levenberg-Marquardt algorithm of non-linear least-squares minimization in order to find the best fit to the observations.


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

Generated using doxygen 1.8.17