SolvableMJones.h

Classes

SolvableMJones -- Model solvable, time-variable multiplicative errors for the VisEquation (full description)
MIfr -- MIfr: Model solvable, time-variable diagonal multiplicative errors for the VisEquation (full description)

class SolvableMJones : public TimeVarMJones

Interface

Public Members
SolvableMJones()
SolvableMJones(VisSet& vs, String file, const String& select)
SolvableMJones(VisSet& vs, Double interval=DBL_MAX, Double deltat=1.0)
SolvableMJones(const SolvableMJones& other)
~SolvableMJones()
virtual SolvableMJones& operator=(const SolvableMJones& other)
virtual Bool isSolveable()
virtual void initializeGradients()
virtual void finalizeGradients()
virtual void addGradients(const VisBuffer& vb, Int row, const Antenna& a1, const Antenna& a2, const Vector<Float>& sumwt, const Vector<Float>& chisq, const Vector<Complex>& c, const Vector<Float>& f)
virtual Bool solve (VisEquation& me)
virtual void store(const String& file, const Bool& append)
virtual void load(const String& file, const String& select, const String& type)
Protected Members
void initialize()
virtual void updateIntGain(Int slot)
virtual void getIntGain(Cube<mjJones4>& ag, const VisBuffer& vb, Int row)
virtual LogSink& logSink()

Description

Prerequisite

Etymology

SolvableMJones describes an interface for time variable and solvable multiplicative errors to be used in the VisEquation.

Synopsis

See VisEquation for definition of the Visibility Measurement Equation.

SolvableMJones performs caching of values to minimize computation.

Values may be loaded from, saved to, and interpolated from a Table.

The following examples illustrate how an SolvableMJones can be used:

Example

      // Read the VisSet from disk
      VisSet vs("3c84.MS");

      VisEquation ve(vs);

      // Make an MJones
      MIfr ij(vs);

      ve.setMJones(ij);

      // Correct the visset
      ve.correct();

Motivation

The properties of an multiplicative component must be described for the VisEquation.

To Do

Member Description

SolvableMJones()

SolvableMJones(VisSet& vs, String file, const String& select)

Load from a table

SolvableMJones(VisSet& vs, Double interval=DBL_MAX, Double deltat=1.0)

From VisSet - interval is the solution interval in seconds, deltat is the fuzziness in time comparisons

SolvableMJones(const SolvableMJones& other)

Copy

~SolvableMJones()

Destructor

virtual SolvableMJones& operator=(const SolvableMJones& other)

Assignment

virtual Bool isSolveable()

Is this solveable?

virtual void initializeGradients()

Initialize for gradient search

virtual void finalizeGradients()

virtual void addGradients(const VisBuffer& vb, Int row, const Antenna& a1, const Antenna& a2, const Vector<Float>& sumwt, const Vector<Float>& chisq, const Vector<Complex>& c, const Vector<Float>& f)

Add to Gradient Chisq

virtual Bool solve (VisEquation& me)

Solve

virtual void store(const String& file, const Bool& append)

Store the time-variable gains as a table. Derived classes may need to redefine this

virtual void load(const String& file, const String& select, const String& type)

Retrieve the time-variable gains from a table

void initialize()

virtual void updateIntGain(Int slot)

Update the interferometer gains from the gradients.

virtual void getIntGain(Cube<mjJones4>& ag, const VisBuffer& vb, Int row)

Get interferometer gains from store. To be defined in derived class.

virtual LogSink& logSink()


class MIfr : public SolvableMJones

Interface

Public Members
MIfr(VisSet& vs, Double interval=DBL_MAX, Double deltat=1.0)
MIfr(VisSet& vs, String file, const String& select)
~MIfr()
Protected Members
void init()
virtual void updateIntGain(Int slot)

Description

Prerequisite

Etymology

MIfr describes an interface for diagonal, time variable and solvable multiplicative errors to be used in the VisEquation.

Synopsis

See VisEquation for definition of the Visibility Measurement Equation.

MIfr performs caching of values to minimize computation.

Values may be loaded from, saved to, and interpolated from a Table.

The elements of MIfr are constrained to be non-zero only along the diagonal.

Example

      // Read the VisSet from disk
      VisSet vs("3c84.MS");

      VisEquation ve(vs);

      // Make an MJones
      MIfr ij(vs);

      ve.setMJones(ij);

      // Correct the visset
      ve.correct();

Motivation

The properties of an multiplicative component must be described for the VisEquation.

To Do

Member Description

MIfr(VisSet& vs, Double interval=DBL_MAX, Double deltat=1.0)

MIfr(VisSet& vs, String file, const String& select)

~MIfr()

void init()

init mask and cache for diagonal matrices

virtual void updateIntGain(Int slot)

Update the interferometer gains from the gradients.