LinearModel.h

Classes

LinearModel -- Provides a model for use in model fitting applications (full description)

template<class Domain> class LinearModel

Interface

Public Members
virtual ~LinearModel()
virtual const Domain & getModel() const = 0
virtual void setModel(const Domain & model) = 0

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

LinearModel was originally conceived for providing the model, and optionally for derived classes the iterative solution methods for linear equations (like Ax=b) but may be more general in scope.

Synopsis

This abstract class defines the interface between a model of the sky (or any other quantity) and the equation used to predict the measured quantities. It provides the current best guess model, and given measures of the discrepency between the current model and the data (as provided by the ResidualEquation class) derived classes may be able to solve for a better model that corresponds more closely to the measured data.

Example

I'll pass this class into a function as an actual instance of an abstract class cannot be constructed.
    void foo(LinearModel< Image<Float> > mod, 
             ResidualEquation< Image<Float> > eqn)
    {
      Image<Float> currentModel, newModel;
      currentModel = mod.getModel(); // get the current model;
    }
    

Motivation

This class was originally conceived to be used in implementing deconvolution algorithms. I would not be surprised if it found wider applicability.

Template Type Argument Requirements (Domain)

Thrown Exceptions

To Do

Member Description

virtual ~LinearModel()

A virtual destructor is necessary

virtual const Domain & getModel() const = 0

Return the current model.

virtual void setModel(const Domain & model) = 0

Set the current model