casa
5.7.0-16
|
Base class for incremental entropies used by incremental MEM algorithm. More...
#include <IncEntropy.h>
Public Member Functions | |
IncEntropy () | |
The default constructor is good enough, does nothing. More... | |
virtual | ~IncEntropy () |
A virtual destructor may be necessary for use in derived classes. More... | |
virtual casacore::Float | formEntropy ()=0 |
calculate the entropy for the whole image More... | |
virtual void | formGDG (casacore::Matrix< double > &)=0 |
calculate the Gradient dot Gradient matrix More... | |
virtual void | formGDGStep (casacore::Matrix< double > &)=0 |
calculate the Gradient dot Gradient matrix, calculate Step More... | |
virtual casacore::Double | formGDS ()=0 |
calculate Gradient dot Step More... | |
virtual void | entropyType (casacore::String &)=0 |
report the entropy type for a logging message More... | |
virtual void | entropyName (casacore::String &)=0 |
report the entropy name More... | |
void | setMemModel (IncCEMemModel &mmm) |
set the MemModel More... | |
virtual void | infoBanner ()=0 |
infoBanner More... | |
virtual void | infoPerIteration (casacore::uInt iteration)=0 |
infoPerIteration More... | |
virtual casacore::Float | relaxMin ()=0 |
are there any constraints on how the Image minimum gets relaxed? More... | |
virtual casacore::Bool | testConvergence ()=0 |
each entropy type can have its distinct convergence criteria More... | |
Protected Types | |
enum | GRADTYPE { H, C, F, J } |
Protected Member Functions | |
IncEntropy (const IncEntropy &) | |
Protected Attributes | |
IncCEMemModel * | cemem_ptr |
Base class for incremental entropies used by incremental MEM algorithm.
Public interface
This class is called Entropy because it encapsulates the required functionality of the entropy in the CE MEM algorithm. Inc is from incremental, as the dirty image specifies an increment on a previous major cycle's image, and the entropy is applied to the full image + deltaImage.
Provide the generic interface to entropy functions.
We calculate entropy, gradients, and Hessians (diagonal) of the entropy. For efficiency reasons, we cannot restrict the methods to these calculations, but must also subsume the loops over image pixels in which they are used. In this way, the Entropy classes form a tight partnership with the MemModel classes, taking over more responcibility than strict functional encapsulation requires.
This class heirarchy is used by CEMemModel, which implements the Cornwell-Evans Maximum Entropy algorithm.
In the Entropy constructor, we create a pointer to the CEMemModel for reference to its Mem image, prior image, and default levels. Since each sort of Entropy is a friend of the CEMemModel, it has access to its private data. However, we vow here NOT to touch it, just to look at it. Could have done read-only access, but too lazy.
This class is needed to encapsulate the methods of different functional forms of the entropy, used by Maximum Entropy (MEM) deconvolution algorithms.
virtual base class
Definition at line 105 of file IncEntropy.h.
|
protected |
Enumerator | |
---|---|
H | |
C | |
F | |
J |
Definition at line 155 of file IncEntropy.h.
casa::IncEntropy::IncEntropy | ( | ) |
The default constructor is good enough, does nothing.
the MemImage and Prior image are stored in the MemModel.
|
virtual |
A virtual destructor may be necessary for use in derived classes.
|
protected |
|
pure virtual |
report the entropy name
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
|
pure virtual |
report the entropy type for a logging message
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
Referenced by casa::IncCEMemModel::entropyType().
|
pure virtual |
calculate the entropy for the whole image
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
Referenced by casa::IncCEMemModel::formEntropy().
|
pure virtual |
calculate the Gradient dot Gradient matrix
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
Referenced by casa::IncCEMemModel::formGDG().
|
pure virtual |
calculate the Gradient dot Gradient matrix, calculate Step
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
Referenced by casa::IncCEMemModel::formGDGStep().
|
pure virtual |
calculate Gradient dot Step
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
Referenced by casa::IncCEMemModel::formGDS().
|
pure virtual |
infoBanner
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
|
pure virtual |
infoPerIteration
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
|
pure virtual |
are there any constraints on how the Image minimum gets relaxed?
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
Referenced by casa::IncCEMemModel::relaxMin().
|
inline |
|
pure virtual |
each entropy type can have its distinct convergence criteria
Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.
Referenced by casa::IncCEMemModel::testConvergence().
|
protected |
Definition at line 158 of file IncEntropy.h.
Referenced by setMemModel().