Engine class that actually performs the computation. More...

#include <CyclicFold.h>

Inheritance diagram for dsp::CyclicFoldEngine:
dsp::Fold::Engine OwnStream Reference::Able Reference::HeapTracked

Public Member Functions

virtual void set_nlag (unsigned _nlag)
 Set the number of lags to fold.
 
virtual void set_mover (unsigned _mover)
 Set the amount of oversampling.
 
virtual void set_nbin (unsigned _nbin)
 Set the number of phase bins and initialize any other data structures.
 
virtual void set_npol (unsigned _npol)
 Set the number of polarizations to compute.
 
virtual void set_bin (uint64_t idat, double ibin, double bins_per_samp)
 Set the phase bin into which the idat'th sample will be integrated.
 
uint64_t set_bins (double phi, double phase_per_sample, uint64_t ndat, uint64_t idat_start)
 
uint64_t get_bin_hits (int ibin)
 
virtual PhaseSeriesget_profiles ()
 Return the PhaseSeries into which data will be folded.
 
void set_profiles (PhaseSeries *_out)
 
virtual void fold ()
 Perform the fold operation.
 
virtual void synch (PhaseSeries *)
 Synchronize the folded profile.
 
virtual void zero ()
 Zero internal data.
 
virtual void set_ndat (uint64_t ndat, uint64_t idat_start)
 Enable engine to prepare any internal memory required for the plan.
 
uint64_t get_ndat_folded () const override
 Return the (average) number of good samples folded into result. More...
 
- Public Member Functions inherited from dsp::Fold::Engine
void set_parent (Fold *)
 
- Public Member Functions inherited from OwnStream
 OwnStream (const OwnStream &)
 
const OwnStreamoperator= (const OwnStream &)
 
virtual void set_cout (std::ostream &) const
 
virtual void set_cerr (std::ostream &) const
 
- Public Member Functions inherited from Reference::Able
 Able (const Able &)
 
Ableoperator= (const Able &)
 
unsigned get_reference_count () const
 
- Public Member Functions inherited from Reference::HeapTracked
 HeapTracked (const HeapTracked &)
 
HeapTrackedoperator= (const HeapTracked &)
 
bool __is_on_heap () const
 

Protected Member Functions

float * get_lagdata_ptr (unsigned ichan, unsigned ipol, unsigned ibin)
 
unsigned * get_laghits_ptr (unsigned ichan, unsigned ibin)
 
- Protected Member Functions inherited from dsp::Fold::Engine
void setup ()
 Set the above attributes.
 
- Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
 
void __dereference (bool auto_delete=true) const
 

Protected Attributes

PhaseSeriesout
 
unsigned nlag
 
unsigned mover
 
unsigned nbin
 
unsigned npol_out
 
uint64_t nval_folded {0}
 
unsigned * binplan [2]
 
uint64_t binplan_size
 
float * lagdata {nullptr}
 
uint64_t lagdata_size {0}
 
unsigned * laghits {nullptr}
 
uint64_t laghits_size {0}
 
FTransform::Planlag2chan
 
- Protected Attributes inherited from dsp::Fold::Engine
float * output
 
unsigned output_span
 
const float * input
 
unsigned input_span
 
unsigned * hits
 
unsigned hits_nchan
 
bool zeroed_samples
 
unsigned ndat_fold
 
uint64_t idat_start
 
unsigned nchan
 
unsigned npol
 
unsigned ndim
 
Foldparent
 
bool synchronized
 

Additional Inherited Members

- Static Public Member Functions inherited from Reference::Able
static size_t get_instance_count ()
 
- Static Public Member Functions inherited from Reference::HeapTracked
static void * operator new (size_t size, void *ptr=0)
 
static void operator delete (void *location, void *ptr)
 
static void operator delete (void *location)
 
static size_t get_heap_queue_size ()
 
- Public Attributes inherited from dsp::Fold::Engine
bool use_set_bins
 

Detailed Description

Engine class that actually performs the computation.

Engine class that performs the 'lag/fold' computation. Could be supplemented with a GPU version, etc

Member Function Documentation

◆ get_ndat_folded()

uint64_t dsp::CyclicFoldEngine::get_ndat_folded ( ) const
overridevirtual

Return the (average) number of good samples folded into result.

nval_folded is incremented for every good sample of every lag and every channel; therefore the count is divided by nlag*nchan

Implements dsp::Fold::Engine.


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

Generated using doxygen 1.8.17