HOPS
HOPS class reference
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
hops::MHO_MBDelaySearchOpenMP Class Reference

Class MHO_MBDelaySearchOpenMP. More...

#include <MHO_MBDelaySearchOpenMP.hh>

Inheritance diagram for hops::MHO_MBDelaySearchOpenMP:
[legend]

Classes

struct  LocalMax
 

Public Member Functions

 MHO_MBDelaySearchOpenMP ()
 
virtual ~MHO_MBDelaySearchOpenMP ()
 
void SetNThreadsOpenMP (int n_threads)
 
- Public Member Functions inherited from hops::MHO_MBDelaySearch
 MHO_MBDelaySearch ()
 
virtual ~MHO_MBDelaySearch ()
 
double GetAverageFrequency () const
 
double GetCoarseDR () const
 Getter for coarse dr. More...
 
double GetCoarseMBD () const
 Getter for coarse mbd. More...
 
double GetCoarseSBD () const
 Getter for coarse sbd. More...
 
delay_rate_axis_typeGetDRAxis ()
 
int GetDRMaxBin () const
 Getter for drmax bin. More...
 
void GetDRWindow (double &low, double &high) const
 Getter for dr window. More...
 
double GetFrequencySpacing () const
 
time_axis_typeGetMBDAxis ()
 
int GetMBDMaxBin () const
 Getter for mbdmax bin. More...
 
void GetMBDWindow (double &low, double &high) const
 Getter for mbd window. More...
 
int GetNDRBins () const
 Getter for ndrbins. More...
 
int GetNDRSPBins () const
 
int GetNMBDBins () const
 Getter for N mbd bins. More...
 
double GetNPointsSearched () const
 
int GetNSBDBins () const
 Getter for n sbd bins. More...
 
double GetSBDBinSeparation () const
 Getter for sbd bin separation. More...
 
int GetSBDMaxBin () const
 Getter for sbdmax bin. More...
 
void GetSBDWindow (double &low, double &high) const
 Getter for sbd window. More...
 
double GetSearchMaximumAmplitude () const
 
void SetCoherenceTime (double t_cohere)
 Setter for coherence time (enables incoherent averaging over delay rate) More...
 
void SetDRWindow (double low, double high)
 Setter for dr window. More...
 
void SetMBDWindow (double low, double high)
 Setter for mbd window. More...
 
void SetReferenceFrequency (double ref_freq)
 Setter for reference frequency. More...
 
void SetSBDWindow (double low, double high)
 Setter for sbd window. More...
 
void SetWeights (weight_type *wt_data)
 Setter for weights. More...
 
- Public Member Functions inherited from hops::MHO_InspectingOperator< visibility_type >
 MHO_InspectingOperator ()
 
virtual ~MHO_InspectingOperator ()
 
virtual bool Execute () override
 Executes the inspection on the input array. More...
 
virtual bool Initialize () override
 initializes inspection for a single const array of type XArgType. More...
 
virtual void SetArgs (const visibility_type *in)
 Setter for args. More...
 
- Public Member Functions inherited from hops::MHO_Operator
 MHO_Operator ()
 
virtual ~MHO_Operator ()
 
std::string GetName () const
 Getter for operator name. More...
 
double Priority () const
 Get the the priority field value. More...
 
void SetName (std::string name)
 Setter for operator name. More...
 
void SetPriority (double priority)
 Setter for operator priority (determines order of execution within a operator category) More...
 

Protected Types

using XArgType = visibility_type
 
- Protected Types inherited from hops::MHO_MBDelaySearch
using FFT_2D_ENGINE_TYPE = MHO_MultidimensionalFastFourierTransform< mbd_dr_type >
 
using FFT_ENGINE_TYPE = MHO_MultidimensionalFastFourierTransform< mbd_type >
 
using XArgType = visibility_type
 

Protected Member Functions

virtual bool ExecuteImpl (const XArgType *in) override
 Inspects a single const array. More...
 
virtual bool InitializeImpl (const XArgType *in) override
 initializes inspection for a single const array of type XArgType. More...
 
- Protected Member Functions inherited from hops::MHO_MBDelaySearch
void apply_dr_boxcar_smooth (mbd_dr_type &buffer, std::vector< double > &scratch)
 Applies incoherent box-car smoothing over the delay-rate dimension of the given search buffer, using scratch as a temporary per-MBD amplitude row. When fTCohereEnabled is false this is a no-op. Each backend calls this directly with its own buffer and scratch space: base: apply_dr_boxcar_smooth(fSearchBuffer, fSmoothedAmpBuffer) OpenMP: apply_dr_boxcar_smooth(local_sb, fPerThreadSmoothScratch[tid]) CUDA: apply_dr_boxcar_smooth(fHostBuffer, fSmoothedAmpBuffer) More...
 
bool finalize_search ()
 Finalize the coarse search: validate bin locations, compute coarse delay values from axis lookups, and return true only when a valid peak was found (all bin indices >= 0). More...
 
void GetWindow (const MHO_Axis< double > &axis, bool win_set, const double *win, double bin_width, double &low, double &high) const
 
void SetWindow (double *win, double low, double high)
 

Protected Attributes

int fNThreads
 
std::vector< FFT_2D_ENGINE_TYPEfPerThreadBatchedFFTEngine
 
std::vector< MHO_DelayRatefPerThreadDelayRateCalc
 
std::vector< visibility_typefPerThreadSBDDrData
 
std::vector< visibility_typefPerThreadSBDWorkspace
 
std::vector< mbd_dr_typefPerThreadSearchBuffer
 
std::vector< std::vector< double > > fPerThreadSmoothScratch
 
std::vector< LocalMaxfThreadMaxima
 
- Protected Attributes inherited from hops::MHO_MBDelaySearch
double fAccPeriod
 
double fAverageFreq
 
FFT_2D_ENGINE_TYPE fBatchedFFTEngine
 
std::vector< double > fChannelFreqs
 
std::map< std::size_t, std::size_t > fChannelIndexToFreqPointIndex
 
double fCoarseDR
 
double fCoarseMBD
 
double fCoarseSBD
 
MHO_CyclicRotator< mbd_typefCyclicRotator
 
MHO_DelayRate fDelayRateCalc
 
MHO_Axis< double > fDRAxis
 
double fDRBinSep
 
int fDRMaxBin
 
double fDRWin [2]
 
bool fDRWinSet
 
FFT_ENGINE_TYPE fFFTEngine
 
MHO_UniformGridPointsCalculator fGridCalc
 
double fGridSpace
 
double fGridStart
 
bool fInitialized
 
double fMax
 
MHO_ExtremaSearch< mbd_amp_typefMaxSearch
 
mbd_amp_type fMBDAmpWorkspace
 
MHO_Axis< double > fMBDAxis
 
std::vector< std::size_t > fMBDBinForChannel
 
std::map< std::size_t, std::size_t > fMBDBinMap
 
double fMBDBinSep
 
int fMBDMaxBin
 
double fMBDWin [2]
 
bool fMBDWinSet
 
mbd_type fMBDWorkspace
 
std::size_t fNDR
 
std::size_t fNDRSP
 
std::size_t fNGridPoints
 
double fNPointsSearched
 
std::size_t fNSBD
 
double fRefFreq
 
MHO_Axis< double > fSBDAxis
 
double fSBDBinSep
 
visibility_type fSBDDrWorkspace
 
int fSBDMaxBin
 
int fSBDStart
 
int fSBDStop
 
double fSBDWin [2]
 
bool fSBDWinSet
 
mbd_dr_type fSearchBuffer
 
std::vector< double > fSmoothedAmpBuffer
 
double fTCohere
 
bool fTCohereEnabled
 
weight_typefWeights
 
weight_type fWeightsWorkspace
 
visibility_type sbd_dr_data
 
- Protected Attributes inherited from hops::MHO_InspectingOperator< visibility_type >
const visibility_typefArg
 

Detailed Description

Class MHO_MBDelaySearchOpenMP.

OpenMP-parallel override of MHO_MBDelaySearch; parallelizes the outer SBD loop.

Author
J. Barrett - barre.nosp@m.ttj@.nosp@m.mit.e.nosp@m.du
Date
Tue Apr 11 16:50:11 2023 -0400

Class Documentation

◆ hops::MHO_MBDelaySearchOpenMP::LocalMax

struct hops::MHO_MBDelaySearchOpenMP::LocalMax
Class Members
char _pad[32]
int dr_bin
int mbd_bin
double n_points
int sbd_bin
double val

Member Typedef Documentation

◆ XArgType

Constructor & Destructor Documentation

◆ MHO_MBDelaySearchOpenMP()

hops::MHO_MBDelaySearchOpenMP::MHO_MBDelaySearchOpenMP ( )

◆ ~MHO_MBDelaySearchOpenMP()

hops::MHO_MBDelaySearchOpenMP::~MHO_MBDelaySearchOpenMP ( )
virtual

Member Function Documentation

◆ ExecuteImpl()

bool hops::MHO_MBDelaySearchOpenMP::ExecuteImpl ( const XArgType in)
overrideprotectedvirtual

Inspects a single const array.

Parameters
inInput const array of type XArgType to inspect.
Returns
Boolean indicating successful execution.
Note
This is a virtual function.

Reimplemented from hops::MHO_MBDelaySearch.

◆ InitializeImpl()

bool hops::MHO_MBDelaySearchOpenMP::InitializeImpl ( const XArgType in)
overrideprotectedvirtual

initializes inspection for a single const array of type XArgType.

Parameters
inInput const array of type XArgType to inspect
Returns
True if inspection is successful, false otherwise
Note
This is a virtual function.

Reimplemented from hops::MHO_MBDelaySearch.

◆ SetNThreadsOpenMP()

void hops::MHO_MBDelaySearchOpenMP::SetNThreadsOpenMP ( int  n_threads)
inline

Member Data Documentation

◆ fNThreads

int hops::MHO_MBDelaySearchOpenMP::fNThreads
protected

◆ fPerThreadBatchedFFTEngine

std::vector< FFT_2D_ENGINE_TYPE > hops::MHO_MBDelaySearchOpenMP::fPerThreadBatchedFFTEngine
protected

◆ fPerThreadDelayRateCalc

std::vector< MHO_DelayRate > hops::MHO_MBDelaySearchOpenMP::fPerThreadDelayRateCalc
protected

◆ fPerThreadSBDDrData

std::vector< visibility_type > hops::MHO_MBDelaySearchOpenMP::fPerThreadSBDDrData
protected

◆ fPerThreadSBDWorkspace

std::vector< visibility_type > hops::MHO_MBDelaySearchOpenMP::fPerThreadSBDWorkspace
protected

◆ fPerThreadSearchBuffer

std::vector< mbd_dr_type > hops::MHO_MBDelaySearchOpenMP::fPerThreadSearchBuffer
protected

◆ fPerThreadSmoothScratch

std::vector< std::vector< double > > hops::MHO_MBDelaySearchOpenMP::fPerThreadSmoothScratch
protected

◆ fThreadMaxima

std::vector< LocalMax > hops::MHO_MBDelaySearchOpenMP::fThreadMaxima
protected

The documentation for this class was generated from the following files: