casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
casa::LinearModel< Domain > Class Template Reference

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

#include <LinearModel.h>

List of all members.

Public Member Functions

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.

Detailed Description

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

Provides a model for use in model fitting applications.

Intended use:

Public interface

 <h3>Review Status</h3><dl><dt>Date Reviewed:<dd>yyyy/mm/dd</dl> 

Prerequisite

class should be read in conjunction with: LinearEquation ResidualEquation

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)

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 100 of file LinearModel.h.


Constructor & Destructor Documentation

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

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 file: