casa
$Rev:20696$
|
defines a relationship between Domain and Range objects More...
#include <LinearEquation.h>
Public Member Functions | |
virtual | ~LinearEquation () |
A virtual destructor may be necessary for use in derived classes. | |
virtual Bool | evaluate (Range &result, const LinearModel< Domain > &model)=0 |
This function evaluates the Equation for the specified model. | |
virtual Bool | residual (Domain &answer, const LinearModel< Domain > &model)=0 |
evaluate residual | |
virtual Bool | residual (Domain &answer, Float &chisq, const LinearModel< Domain > &model)=0 |
Same as above, but also calculates Chi^2. | |
virtual Bool | residual (Domain &answer, Float &chisq, Domain &mask, const LinearModel< Domain > &model)=0 |
Same as above, but also calculates Chi^2 considering a mask. |
defines a relationship between Domain and Range objects
Public interface
<h3>Review Status</h3><dl><dt>Date Reviewed:<dd>yyyy/mm/dd</dl>
class should be read in conjunction with: LinearModel ResidualEquation
LinearEquation was originally conceived for implementing linear equations (like Ax=b) but was in hindsight found to be more general.
This abstract class defines the basic functions used for forward modelling of measured data of "Range" data type. It defines the functions used to transform a model, of "Domain" data type to predicted data. It can also compare the predicted data with the measured data and return residuals to classes derived from LinearModel which can then be used to update the model.
I'll pass this class into a subroutine as an actual instance of an abstract class cannot be constructed.
void foo(LinearModel< Image<Float> > mod, LinearEquation<Image<Float>, VisibilitySet>) VisibilitySet predictedVisibility; eqn.evaluate(predictedVisibility, mod);
This class was originally conceived to be used in implementing deconvolution algorithms. I would not be surprised if it found wider applicability.
do not see any restrictions on the Domain class. Its up to the derived class to handle the the appropriate Domain.
order to calculate residuals it will probably be necessary for subtraction to be defined on the Range class, as well as some way for data in the Range data type to be converted back into the Domain data type. However it is left up to the derived classes to implement this.
is an interface class and does not contain any implementation (and hence does not throw exceptions)
Definition at line 106 of file LinearEquation.h.
virtual casa::LinearEquation< Domain, Range >::~LinearEquation | ( | ) | [virtual] |
A virtual destructor may be necessary for use in derived classes.
virtual Bool casa::LinearEquation< Domain, Range >::evaluate | ( | Range & | result, |
const LinearModel< Domain > & | model | ||
) | [pure virtual] |
This function evaluates the Equation for the specified model.
It returns False if the result could not be computed.
Implemented in casa::ConvolutionEquation, and casa::LatConvEquation.
virtual Bool casa::LinearEquation< Domain, Range >::residual | ( | Domain & | answer, |
const LinearModel< Domain > & | model | ||
) | [pure virtual] |
evaluate residual
Implements casa::ResidualEquation< Domain >.
Implemented in casa::ConvolutionEquation, casa::LatConvEquation, and casa::IPLatConvEquation.
virtual Bool casa::LinearEquation< Domain, Range >::residual | ( | Domain & | answer, |
Float & | chisq, | ||
const LinearModel< Domain > & | model | ||
) | [pure virtual] |
Same as above, but also calculates Chi^2.
Implements casa::ResidualEquation< Domain >.
Implemented in casa::ConvolutionEquation, casa::LatConvEquation, and casa::IPLatConvEquation.
virtual Bool casa::LinearEquation< Domain, Range >::residual | ( | Domain & | answer, |
Float & | chisq, | ||
Domain & | mask, | ||
const LinearModel< Domain > & | model | ||
) | [pure virtual] |
Same as above, but also calculates Chi^2 considering a mask.
Implements casa::ResidualEquation< Domain >.
Implemented in casa::ConvolutionEquation, and casa::LatConvEquation.