HOPS
HOPS class reference
MHO_MixedSidebandNormFX.hh
Go to the documentation of this file.
1 #ifndef MHO_MixedSidebandNormFX_HH__
2 #define MHO_MixedSidebandNormFX_HH__
3 
4 #include <cmath>
5 #include <complex>
6 
8 #include "MHO_TableContainer.hh"
9 
10 #include "MHO_ComplexConjugator.hh"
11 #include "MHO_CyclicRotator.hh"
12 #include "MHO_EndZeroPadder.hh"
15 #include "MHO_NaNMasker.hh"
16 #include "MHO_NormFX.hh"
17 #include "MHO_SubSample.hh"
18 #include "MHO_UnaryOperator.hh"
19 
20 #ifdef HOPS_USE_FFTW3
22 #endif
23 
24 namespace hops
25 {
26 
42 class MHO_MixedSidebandNormFX: public MHO_NormFX //public MHO_UnaryOperator< visibility_type >
43 {
44  public:
46  virtual ~MHO_MixedSidebandNormFX();
47 
48  protected:
50 
58  virtual bool InitializeInPlace(XArgType* in) override;
67  virtual bool InitializeOutOfPlace(const XArgType* in, XArgType* out) override;
68 
76  virtual bool ExecuteInPlace(XArgType* in) override;
85  virtual bool ExecuteOutOfPlace(const XArgType* in, XArgType* out) override;
86 
87  // virtual bool InitializeInPlace(const XArgType* in, XArgType* out) override;
88  // virtual bool Execute(const XArgType* in, XArgType* out) override;
89 
90  private:
91  std::size_t fInDims[VIS_NDIM];
92  std::size_t fWorkDims[VIS_NDIM];
93  std::size_t fOutDims[VIS_NDIM];
94 
97 
99 
100 #ifdef HOPS_USE_FFTW3
102 #else
104 #endif
105 
106  FFT_ENGINE_TYPE fFFTEngine;
110 
111  visibility_type fWorkspace;
112  bool fInitialized;
113 
114  void FillWorkspace(const visibility_type* in, visibility_type* workspace);
115  void TreatDoubleSidebandChannels(const visibility_type* in, visibility_type* workspace);
116 
117  //bool ApplyWeights(visibility_type* out, weight_type* w, bool invert);
118 };
119 
120 } // namespace hops
121 
122 #endif
#define VIS_NDIM
Definition: MHO_BaselineContainers.hh:43
Class MHO_ComplexConjugator.
Definition: MHO_ComplexConjugator.hh:24
Class MHO_CyclicRotator.
Definition: MHO_CyclicRotator.hh:29
Class MHO_EndZeroPadder.
Definition: MHO_EndZeroPadder.hh:29
Class MHO_FunctorBroadcaster.
Definition: MHO_FunctorBroadcaster.hh:25
Class MHO_MixedSidebandNormFX.
Definition: MHO_MixedSidebandNormFX.hh:43
virtual bool InitializeInPlace(XArgType *in) override
Initializes in-place data by copying from temporary out-of-place data.
Definition: MHO_MixedSidebandNormFX.cc:206
virtual bool InitializeOutOfPlace(const XArgType *in, XArgType *out) override
Initializes out-of-place processing for mixed sideband data.
Definition: MHO_MixedSidebandNormFX.cc:10
virtual bool ExecuteOutOfPlace(const XArgType *in, XArgType *out) override
Executes out-of-place processing for mixed sideband data.
Definition: MHO_MixedSidebandNormFX.cc:157
virtual bool ExecuteInPlace(XArgType *in) override
Executes in-place operation using ExecuteOutOfPlace and copies result back to input.
Definition: MHO_MixedSidebandNormFX.cc:215
MHO_MixedSidebandNormFX()
Definition: MHO_MixedSidebandNormFX.cc:6
virtual ~MHO_MixedSidebandNormFX()
Definition: MHO_MixedSidebandNormFX.cc:8
Class MHO_MultidimensionalFastFourierTransformFFTW.
Definition: MHO_MultidimensionalFastFourierTransformFFTW.hh:37
Class MHO_NaNMasker.
Definition: MHO_NaNMasker.hh:25
Class MHO_NormFX.
Definition: MHO_NormFX.hh:27
Class MHO_SubSample.
Definition: MHO_SubSample.hh:30
Definition: MHO_ChannelLabeler.hh:17
MHO_TableContainer< visibility_element_type, baseline_axis_pack > visibility_type
Definition: MHO_BaselineContainers.hh:52