casacore
Public Types | Public Member Functions | Static Protected Member Functions | Static Private Member Functions | List of all members

More...

#include <MCBase.h>

Public Types

enum  Routes { N_Routes }
 Each derived class should have a list of routines to be called: More...
 

Public Member Functions

virtual ~MCBase ()
 
virtual void getConvert (MConvertBase &mc, const MRBase &inref, const MRBase &outref)=0
 All these functions are called by Measure::Convert classes only. More...
 
virtual void initConvert (uInt which, MConvertBase &mc)=0
 Create help structures for Measure conversion routines. More...
 
virtual void clearConvert ()=0
 Delete the pointers used in the MeasConvert help structure cache. More...
 
virtual void doConvert (MeasValue &in, MRBase &inref, MRBase &outref, const MConvertBase &mc)=0
 Routine to convert a Measure from one reference frame to another. More...
 

Static Protected Member Functions

static void makeState (uInt *state, const uInt ntyp, const uInt nrout, const uInt list[][3])
 The following routines create a state transition matrix from a list of all defined transitions. More...
 
static String showState (uInt *state, const uInt ntyp, const uInt nrout, const uInt list[][3])
 Return a fromatted String with matrix information (based on < 100 types) More...
 

Static Private Member Functions

static Bool findState (uInt &len, uInt *state, uInt *mcnt, Bool &okall, Bool *visit, const uInt *tcnt, const uInt *tree, const uInt &in, const uInt &out, const uInt ntyp, const uInt nrout, const uInt list[][3])
 Routine to find the shortest route between two points
More...
 

Detailed Description

Base for specific measure conversions

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tMeasure

Prerequisite

Etymology

Measure, Conversion and Base

Synopsis

MCBase forms the base for the individual state machines doing actual conversions between frames. (see e.g. MCEpoch)

It also has a static routine to calculate the state transition table based on a list of transitions. The makeState() method find the shortest route (weighted if necessary) for a given list of state transitions.

The user of the Measure classes has no direct interaction with this class.

Example

Convert (with all steps explicit) a UTC to an IAT time.

#include <casacore/measures/Measures.h>
#include <casacore/measures/Measures/MCEpoch.h>
cout << "TAI for UTC = MJD(50237.29): " <<
MEpoch::Convert(MEpoch(MVEpoch(Quantity(50237.29, "d")),
endl;
MeasRef< MEpoch > Ref
Measure reference (i.e.
Definition: MEpoch.h:156
MeasConvert< MEpoch > Convert
Measure Convert (i.e.
Definition: MEpoch.h:158
Quantum< Double > Quantity
Definition: Quantum.h:38

To get a static state transition matrix:

static Bool made = False; // set not yet done
enum types { // states
A=0, B, C, D, E, ntyp };
enum routes { // routes
A_B, B_C, B_D, C_D, C_E,
D_C, C_B, B_A, D_B, E_C, nrout };
static uInt list [nrout][3] = { // description. The third number
{A, B, 0}, // is a penalty hop to weight
{B, C, 0}, // against using this route
{B, D, 0},
{C, D, 0},
{C, E, 0},
{D, C, 0},
{C, B, 0},
{B, A, 0},
{D, B, 0},
{E, C, 0} };
static uInt state[ntyp][ntyp]; // the resultant transition matrix
// diagonal == nrout
// Make the state machine
MCBase::makeState(state[0], ntyp, nrout, routes);
made = True;
static void makeState(uInt *state, const uInt ntyp, const uInt nrout, const uInt list[][3])
The following routines create a state transition matrix from a list of all defined transitions.
const Bool False
Definition: aipstype.h:44
unsigned int uInt
Definition: aipstype.h:51
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
const Bool True
Definition: aipstype.h:43

Motivation

To have specific conversion bases

To Do

Definition at line 119 of file MCBase.h.

Member Enumeration Documentation

◆ Routes

Each derived class should have a list of routines to be called:

Enumerator
N_Routes 

Definition at line 134 of file MCBase.h.

Constructor & Destructor Documentation

◆ ~MCBase()

virtual casacore::MCBase::~MCBase ( )
virtual

Member Function Documentation

◆ clearConvert()

virtual void casacore::MCBase::clearConvert ( )
pure virtual

◆ doConvert()

virtual void casacore::MCBase::doConvert ( MeasValue in,
MRBase inref,
MRBase outref,
const MConvertBase mc 
)
pure virtual

◆ findState()

static Bool casacore::MCBase::findState ( uInt len,
uInt state,
uInt mcnt,
Bool okall,
Bool visit,
const uInt tcnt,
const uInt tree,
const uInt in,
const uInt out,
const uInt  ntyp,
const uInt  nrout,
const uInt  list[][3] 
)
staticprivate

Routine to find the shortest route between two points

◆ getConvert()

virtual void casacore::MCBase::getConvert ( MConvertBase mc,
const MRBase inref,
const MRBase outref 
)
pure virtual

◆ initConvert()

virtual void casacore::MCBase::initConvert ( uInt  which,
MConvertBase mc 
)
pure virtual

◆ makeState()

static void casacore::MCBase::makeState ( uInt state,
const uInt  ntyp,
const uInt  nrout,
const uInt  list[][3] 
)
staticprotected

The following routines create a state transition matrix from a list of all defined transitions.

It uses the following information:

  • nrout: the number of transitions; numbered 0,...
  • ntyp: the number of states
  • list: a [nrout][3] list of input and output transition type of transition and a penalty hop number (<100)
  • state: a [ntyp][ntyp] transition matrix with diagonal elements set to nrout.

Routine to make the transition table if necessary

◆ showState()

static String casacore::MCBase::showState ( uInt state,
const uInt  ntyp,
const uInt  nrout,
const uInt  list[][3] 
)
staticprotected

Return a fromatted String with matrix information (based on < 100 types)


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