Class MEAL::ModeCoherency

class ModeCoherency : public MEAL::Wrap<Coherency>

A coherency matrix parameterized by a logarithmic gain times a boost.

This class ensures that the result is a positive definite Hermitian Hermitian matrix by parameterizing the four degrees of freedom as:

  1. log(I), where I is the total intensity

  2. log(beta), where beta = atanh(p) and p is the degree of polarization

  3. unit 3-vector, so that orthogonal mode may be well-defined

Public Functions

ModeCoherency()

Default constructor.

ModeCoherency(const ModeCoherency &copy)

Copy constructor.

ModeCoherency &operator=(const ModeCoherency &copy)

Assignment operator.

~ModeCoherency()

Destructor.

UnitTangent *get_axis()

Get the model of the unit vector.

void set_axis(UnitTangent*)

Set the model of the unit vector.

Scalar *get_beta()

Get beta.

Scalar *get_intensity()

Get the intensity.

virtual void set_stokes(const Stokes<double> &stokes)

Set the Stokes parameters of the model.

virtual void set_stokes(const Stokes<Estimate<double>> &stokes)

Set the Stokes parameters and their estimated errors.

virtual Stokes<Estimate<double>> get_stokes() const

Get the Stokes parameters and their estimated errors.

virtual std::string get_name() const

Return the name of the class.