HOPS
HOPS class reference
MHO_SingleSidebandNormFX.hh
Go to the documentation of this file.
1 #ifndef MHO_SingleSidebandNormFX_HH__
2 #define MHO_SingleSidebandNormFX_HH__
3 
4 #include <cmath>
5 #include <complex>
6 #include <vector>
7 
9 #include "MHO_TableContainer.hh"
10 
11 #include "MHO_ComplexConjugator.hh"
12 #include "MHO_CyclicRotator.hh"
16 #include "MHO_NaNMasker.hh"
17 #include "MHO_NormFX.hh"
18 #include "MHO_SBDTableGenerator.hh"
19 #include "MHO_UnaryOperator.hh"
20 
21 #ifdef HOPS_USE_FFTW3
23 #endif
24 
25 namespace hops
26 {
27 
42 class MHO_SingleSidebandNormFX: public MHO_NormFX //MHO_UnaryOperator< visibility_type >
43 {
44  public:
46  virtual ~MHO_SingleSidebandNormFX();
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  private:
88  std::size_t fInDims[VIS_NDIM];
89  std::size_t fOutDims[VIS_NDIM];
90  std::vector< std::size_t > fLSBChannelIndices; //cached list of LSB channel indices
91 
94 
96 
97 #ifdef HOPS_USE_FFTW3
99 #else
101 #endif
102 
103  FFT_ENGINE_TYPE fFFTEngine;
106  MHO_SBDTableGenerator fSBDGen;
107  bool fInitialized;
108 
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_EndZeroPadderOptimized.
Definition: MHO_EndZeroPadderOptimized.hh:29
Class MHO_FunctorBroadcaster.
Definition: MHO_FunctorBroadcaster.hh:25
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_SBDTableGenerator.
Definition: MHO_SBDTableGenerator.hh:29
Class MHO_SingleSidebandNormFX.
Definition: MHO_SingleSidebandNormFX.hh:43
MHO_SingleSidebandNormFX()
Definition: MHO_SingleSidebandNormFX.cc:10
virtual bool ExecuteOutOfPlace(const XArgType *in, XArgType *out) override
Applies a series of operations including zero-padding, NaN filtering, FFT and cyclic rotation to inpu...
Definition: MHO_SingleSidebandNormFX.cc:92
virtual bool InitializeOutOfPlace(const XArgType *in, XArgType *out) override
Initializes out-of-place processing for Single Sideband (all channels USB or LSB) NormFX using input ...
Definition: MHO_SingleSidebandNormFX.cc:14
virtual bool InitializeInPlace(XArgType *in) override
Initializes in-place by initializing out-of-place and copying back.
Definition: MHO_SingleSidebandNormFX.cc:241
virtual ~MHO_SingleSidebandNormFX()
Definition: MHO_SingleSidebandNormFX.cc:12
virtual bool ExecuteInPlace(XArgType *in) override
Executes in-place operation by temporarily using out-of-place execution and copying results back.
Definition: MHO_SingleSidebandNormFX.cc:251
Definition: MHO_AdhocFlagging.hh:18
MHO_TableContainer< visibility_element_type, baseline_axis_pack > visibility_type
Definition: MHO_BaselineContainers.hh:52