casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
casa::IncEntropy Class Reference

Base class for incremental entropies used by incremental MEM algorithm. More...

#include <IncEntropy.h>

Inheritance diagram for casa::IncEntropy:
casa::IncEntropyEmptiness casa::IncEntropyI

List of all members.

Public Member Functions

 IncEntropy ()
 The default constructor is good enough, does nothing.
virtual ~IncEntropy ()
 A virtual destructor may be necessary for use in derived classes.
virtual Float formEntropy ()=0
 calculate the entropy for the whole image
virtual void formGDG (Matrix< double > &)=0
 calculate the Gradient dot Gradient matrix
virtual void formGDGStep (Matrix< double > &)=0
 calculate the Gradient dot Gradient matrix, calculate Step
virtual Double formGDS ()=0
 calculate Gradient dot Step
virtual void entropyType (String &)=0
 report the entropy type for a logging message
virtual void entropyName (String &)=0
 report the entropy name
void setMemModel (IncCEMemModel &mmm)
 set the MemModel
virtual void infoBanner ()=0
 infoBanner
virtual void infoPerIteration (uInt iteration)=0
 infoPerIteration
virtual Float relaxMin ()=0
 are there any constraints on how the Image minimum gets relaxed?
virtual Bool testConvergence ()=0
 each entropy type can have its distinct convergence criteria

Protected Types

enum  GRADTYPE {
  H,
  C,
  F,
  J
}

Protected Member Functions

 IncEntropy (const IncEntropy &)

Protected Attributes

IncCEMemModelcemem_ptr

Detailed Description

Base class for incremental entropies used by incremental MEM algorithm.

Intended use:

Public interface

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

Prerequisite

Etymology

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.

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&);
   
    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 105 of file IncEntropy.h.


Member Enumeration Documentation

enum casa::IncEntropy::GRADTYPE [protected]
Enumerator:
H 
C 
F 
J 

Definition at line 155 of file IncEntropy.h.


Constructor & Destructor Documentation

The default constructor is good enough, does nothing.

the MemImage and Prior image are stored in the MemModel.

virtual casa::IncEntropy::~IncEntropy ( ) [virtual]

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

casa::IncEntropy::IncEntropy ( const IncEntropy ) [protected]

Member Function Documentation

virtual void casa::IncEntropy::entropyName ( String ) [pure virtual]

report the entropy name

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

virtual void casa::IncEntropy::entropyType ( String ) [pure virtual]

report the entropy type for a logging message

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

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

virtual Float casa::IncEntropy::formEntropy ( ) [pure virtual]

calculate the entropy for the whole image

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

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

virtual void casa::IncEntropy::formGDG ( Matrix< double > &  ) [pure virtual]

calculate the Gradient dot Gradient matrix

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

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

virtual void casa::IncEntropy::formGDGStep ( Matrix< double > &  ) [pure virtual]

calculate the Gradient dot Gradient matrix, calculate Step

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

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

virtual Double casa::IncEntropy::formGDS ( ) [pure virtual]

calculate Gradient dot Step

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

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

virtual void casa::IncEntropy::infoBanner ( ) [pure virtual]

infoBanner

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

virtual void casa::IncEntropy::infoPerIteration ( uInt  iteration) [pure virtual]

infoPerIteration

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

virtual Float casa::IncEntropy::relaxMin ( ) [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().

void casa::IncEntropy::setMemModel ( IncCEMemModel mmm) [inline]

set the MemModel

Definition at line 136 of file IncEntropy.h.

References cemem_ptr.

virtual Bool casa::IncEntropy::testConvergence ( ) [pure virtual]

each entropy type can have its distinct convergence criteria

Implemented in casa::IncEntropyEmptiness, and casa::IncEntropyI.

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


Member Data Documentation

Definition at line 158 of file IncEntropy.h.

Referenced by setMemModel().


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