casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
casa::Entropy Class Referenceabstract

base class for entropy functions as used by MEM More...

#include <Entropy.h>

Inheritance diagram for casa::Entropy:
casa::EntropyEmptiness casa::EntropyI

Public Member Functions

 Entropy ()
 The default constructor is good enough, does nothing. More...
 
virtual ~Entropy ()
 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...
 
void setMemModel (CEMemModel &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

 Entropy (const Entropy &)
 

Protected Attributes

CEMemModelcemem_ptr
 

Detailed Description

base class for entropy functions as used by MEM

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

This class is called Entropy because it encapsulates the required functionality of the entropy in the CE MEM algorithm

Synopsis

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.

Example

EntropyI myEntropyEngine(myCEMemModel&);
casacore::Float theEntropy myEntropyEngine.getEntropy();

Motivation

This class is needed to encapsulate the methods of different functional forms of the entropy, used by Maximum Entropy (MEM) deconvolution algorithms.

To Do

virtual base class

Definition at line 103 of file Entropy.h.

Member Enumeration Documentation

enum casa::Entropy::GRADTYPE
protected
Enumerator
H 
C 
F 
J 

Definition at line 151 of file Entropy.h.

Constructor & Destructor Documentation

casa::Entropy::Entropy ( )

The default constructor is good enough, does nothing.

the MemImage and Prior image are stored in the MemModel.

virtual casa::Entropy::~Entropy ( )
virtual

A virtual destructor may be necessary for use in derived classes.

casa::Entropy::Entropy ( const Entropy )
protected

Member Function Documentation

virtual void casa::Entropy::entropyType ( casacore::String )
pure virtual

report the entropy type for a logging message

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

Referenced by casa::CEMemModel::entropyType().

virtual casacore::Float casa::Entropy::formEntropy ( )
pure virtual

calculate the entropy for the whole image

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

Referenced by casa::CEMemModel::formEntropy().

virtual void casa::Entropy::formGDG ( casacore::Matrix< double > &  )
pure virtual

calculate the Gradient dot Gradient matrix

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

Referenced by casa::CEMemModel::formGDG().

virtual void casa::Entropy::formGDGStep ( casacore::Matrix< double > &  )
pure virtual

calculate the Gradient dot Gradient matrix, calculate Step

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

Referenced by casa::CEMemModel::formGDGStep().

virtual casacore::Double casa::Entropy::formGDS ( )
pure virtual

calculate Gradient dot Step

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

Referenced by casa::CEMemModel::formGDS().

virtual void casa::Entropy::infoBanner ( )
pure virtual

infoBanner

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

virtual void casa::Entropy::infoPerIteration ( casacore::uInt  iteration)
pure virtual

infoPerIteration

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

virtual casacore::Float casa::Entropy::relaxMin ( )
pure virtual

are there any constraints on how the Image minimum gets relaxed?

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

Referenced by casa::CEMemModel::relaxMin().

void casa::Entropy::setMemModel ( CEMemModel mmm)
inline

set the MemModel

Definition at line 132 of file Entropy.h.

References cemem_ptr.

virtual casacore::Bool casa::Entropy::testConvergence ( )
pure virtual

each entropy type can have its distinct convergence criteria

Implemented in casa::EntropyEmptiness, and casa::EntropyI.

Referenced by casa::CEMemModel::testConvergence().

Member Data Documentation

CEMemModel* casa::Entropy::cemem_ptr
protected

Definition at line 154 of file Entropy.h.

Referenced by setMemModel().


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