Class MEAL::ReceptionModel

class ReceptionModel : public MEAL::MeasurementEquation

Models a set of transformations and source polarizations.

This class models the output polarization of an arbitrary number of both input polarization states and signal paths. Each signal path is represented by a MeasurementEquation.

Public Functions

ReceptionModel()

null constructor

~ReceptionModel()

destructor

virtual void add_data(CoherencyMeasurementSet &data)

Checks that each CoherencyMeasurement has a valid source_index.

unsigned get_ndata() const

Get the number of CoherencyMeasurementSet.

const CoherencyMeasurementSet &get_data(unsigned idata) const

Get the specified CoherencyMeasurementSet.

void delete_data()

Delete all data.

virtual void erase_input(unsigned index) override

Remove the specified input from the model and update all measurements.

virtual void erase_transformation(unsigned index) override

Remove the specified transformation from the model and update all measurements.

void add_prefit_report(Report*)

Add a report to be executed before solving the measurement equation.

void add_postfit_report(Report*)

Add a report to be executed after solving the measurement equation.

void set_solver(Solver*)

Set the algorithm used to solve the measurement equation.

Solver *get_solver()

Get the algorithm used to solve the measurement equation.

void solve()

Solve the measurement equation using the current algorithm.

bool get_solved() const

Return true when solved.

void copy_fit(const ReceptionModel*)

Copy the fitted parameters from another model.

virtual std::string get_name() const

Return the name of the class.

Public Static Functions

static Solver *new_default_Solver()

Returns a new instance of the default Solver algorithm.

class Report : public Reference::Able

Base class of objects that report on properties of the measurement equation.

Subclassed by MEAL::CovarianceReport, MEAL::DataAndModelReport, MEAL::FitGoodnessReport, MEAL::InputDataReport, MEAL::ModelParametersReport

Public Functions

virtual Report *clone() const = 0

Return a new, copy-constructed clone of self.

virtual void report(std::ostream&) = 0

Write the report.

inline Report(const std::string &name)

Construct with filename.

inline void set_model(ReceptionModel *_model)

Set the measurement equation on which to report.

inline void set_filename(const std::string &_name)

Set the name of the file to which the report will be written.

inline void set_path(const std::string &_name)

Set the root path to which reports will be written.

std::string make_reports_path(const std::string &subdir = "")

Create the reports directory and return the constructed path name.

virtual void report()

Write the report.

class Solver : public MEAL::LeastSquares

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

Subclassed by MEAL::SolveCeres, MEAL::SolveGSL, MEAL::SolveMEAL

Public Functions

virtual Solver *clone() 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.

void add_acceptance_condition(Functor<bool(ReceptionModel*)>)

Add an acceptance condition.

virtual void solve()

Solve the measurement equations by least squares minimization.

inline void set_verbosity(unsigned level)

Set the verbosity level (0 = quiet, 3 = most verbose).

Public Static Attributes

static bool report_chisq

report the reduced chisq on completion