casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
casa::LinearModel< Domain > Class Template Referenceabstract

Provides a model for use in model fitting applications. More...

#include <IPLatConvEquation.h>

Public Member Functions

virtual ~LinearModel ()
 A virtual destructor is necessary. More...
virtual const Domain & getModel () const =0
 Return the current model. More...
virtual void setModel (const Domain &model)=0
 Set the current model. More...

Detailed Description

template<class Domain>
class casa::LinearModel< Domain >

Provides a model for use in model fitting applications.

Intended use:

Public interface

Review Status

Date Reviewed:


class should be read in conjunction with: LinearEquation ResidualEquation


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.


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.


I'll pass this class into a function as an actual instance of an abstract class cannot be constructed.

void foo(LinearModel< Image<casacore::Float> > mod,
ResidualEquation< Image<casacore::Float> > eqn)
Image<casacore::Float> currentModel, newModel;
currentModel = mod.getModel(); // get the current model;


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)

template determines the external representation of the model used. So complicated templates can be expected and should be OK.

Thrown Exceptions

is an abstract class and does not contain any implementation (and hence does not throw exceptions)

Definition at line 42 of file IPLatConvEquation.h.

Constructor & Destructor Documentation

template<class Domain>
virtual casa::LinearModel< Domain >::~LinearModel ( )

A virtual destructor is necessary.

Member Function Documentation

template<class Domain>
virtual const Domain& casa::LinearModel< Domain >::getModel ( ) const
pure virtual
template<class Domain>
virtual void casa::LinearModel< Domain >::setModel ( const Domain &  model)
pure virtual

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