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
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)
The template determines the external representation of the model used.
So complicated templates can be expected and should be OK.
Thrown Exceptions
This is an abstract class and does not contain any implementation (and
hence does not throw exceptions)
To Do
I cannot see what else I need to do with this class (famous last words)
Member Description
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