Polar.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2004 by Willem van Straten
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // psrchive/More/MEAL/MEAL/Polar.h
10 
11 #ifndef __MEAL_Polar_H
12 #define __MEAL_Polar_H
13 
14 #include "MEAL/ProductRule.h"
15 #include "MEAL/Complex2.h"
16 #include "Quaternion.h"
17 #include "Estimate.h"
18 
19 namespace MEAL {
20 
21  template<typename> class Gain;
22  class Boost;
23  class Rotation;
24 
26 
29  class Polar : public ProductRule<Complex2> {
30 
31  public:
32 
34  Polar ();
35 
37  Polar (const Polar& s);
38 
40  const Polar& operator = (const Polar& s);
41 
43  ~Polar ();
44 
46  Estimate<double> get_gain () const;
47 
49  Estimate<double> get_boost (unsigned i) const;
50 
52  Estimate<double> get_rotation (unsigned i) const;
53 
55  void set_gain (const Estimate<double>& gain);
56 
58  void set_boost (unsigned i, const Estimate<double>& b_i);
59 
61  void set_rotation (unsigned i, const Estimate<double>& phi_i);
62 
64  void solve (Jones< Estimate<double> >& jones);
65 
66  // ///////////////////////////////////////////////////////////////////
67  //
68  // Function implementation
69  //
70  // ///////////////////////////////////////////////////////////////////
71 
73  std::string get_name () const;
74 
78 
80  const Boost* get_boost_transformation () const;
82 
84  const Rotation* get_rotation_transformation () const;
86 
87  protected:
88 
91 
94 
97 
98  private:
99 
101  void init ();
102 
103  };
104 
105 }
106 
107 #endif
108 
const Gain< Complex2 > * get_gain_transformation() const
Provide access to the gain transformation.
Definition: Polar.C:134
void set_gain(const Estimate< double > &gain)
Set the instrumental gain, , in calibrator voltage units.
Definition: Polar.C:118
std::string get_name() const
Return the name of the class.
Definition: Polar.C:96
void set_boost(unsigned i, const Estimate< double > &b_i)
Set the specified component of the boost vector.
Definition: Polar.C:123
Estimate< double > get_boost(unsigned i) const
Get the specified component of the boost vector.
Definition: Polar.C:108
Represents the polar decomposition of a transformation.
Definition: Polar.h:34
const Polar & operator=(const Polar &s)
Assignment Operator.
Definition: Polar.C:79
Reference::To< Boost > boost
Boost Complex2.
Definition: Polar.h:98
void set_rotation(unsigned i, const Estimate< double > &phi_i)
Set the specified component of the rotation vector.
Definition: Polar.C:128
const Boost * get_boost_transformation() const
Provide access to the boost transformation.
Definition: Polar.C:145
Namespace in which all modeling and calibration related code is declared.
Definition: ExampleComplex2.h:16
~Polar()
Destructor.
Definition: Polar.C:54
void solve(Jones< Estimate< double > > &jones)
Polar decompose the Jones matrix.
Estimate< double > get_gain() const
Get the instrumental gain, , in calibrator voltage units.
Definition: Polar.C:102
Reference::To< Rotation > rotation
Rotation Complex2s.
Definition: Polar.h:101
Estimate< double > get_rotation(unsigned i) const
Get the specified component of the rotation vector.
Definition: Polar.C:113
Represents a rotation (passive unitary transformation) about a free axis.
Definition: Rotation.h:38
const Rotation * get_rotation_transformation() const
Provide access to the rotation transformation.
Definition: Polar.C:156
Reference::To< Gain< Complex2 > > gain
Gain<Complex2>
Definition: Polar.h:95
A gain transformation.
Definition: Gain.h:27
Polar()
Default Constructor.
Definition: Polar.C:49
Represents a boost (Hermitian, dichroic) transformation.
Definition: Boost.h:27

Generated using doxygen 1.8.17