4#include "./../types.hpp"
20template <
unsigned int Lin_channels, index_t Series_size,
unsigned int Bin_Ratio>
40 for(
unsigned int s = 0; s < Lin_channels; s++)
61 for(
unsigned int i = 1; i < Lin_channels; i++)
73 for(
unsigned int i = 0; i < size; i++)
82 void ch_out() const __attribute__((flatten))
86 for(
unsigned int s = 1; s < Lin_channels; s++)
98 return (Series_size - Bin_Ratio);
106 return index_t(pow(Bin_Ratio, s));
Adapter object responsible for accumulating the points and coarsening the time-series as per the rela...
Definition: accumulator.hpp:8
void pipe(LinCorrType &channel, const counter_t datum)
Accumulates data points until the BufferPoints criteria is satisfied, after which the points are push...
Definition: accumulator.hpp:26
void do_accumulate(unsigned int buffer_cnt)
Sets the number of points to buffer(accumulate) before pushing to Correlator object.
Definition: accumulator.hpp:16
Teensy specific Front back discarder implementation.
Definition: discarder.hpp:15
This is an implementation of Lin_ACorr_RT_Base for Teensy with (No normalisation or baseline subtract...
Definition: Lin_ACorr_RT_Teensy.hpp:17
Template specialization.
Definition: monitor_channel.hpp:14
void push_back(DataType data)
Adds datum to the channel.
Definition: monitor_channel.hpp:23
MultiTau Auto-Correlator object that is composed of multiple linear - autocorrelators....
Definition: multi_tau.hpp:22
index_t tau_scaling_scheme(unsigned int s) const __attribute__((always_inline))
Returns the relavent Tau scaling factor, based on the specialised scheme. It is used by the accumulat...
Definition: multi_tau.hpp:104
MultiTauACorrRTTeensy()
Counts the total number of data points sent to the counter.
Definition: multi_tau.hpp:37
index_t time_scaling_factor() const __attribute__((always_inline))
Definition: multi_tau.hpp:96
void push_datum(counter_t datum) __attribute__((flatten))
Pushes the datum to each of the Linear Correlators through the Accumulator adapter.
Definition: multi_tau.hpp:49
MonitorChannel< true > MeanMonitor
Definition: multi_tau.hpp:31
Accumulator Accumulators[Lin_channels]
Accumulator Objects for each channel (Accumulator '0' is redundant.)
Definition: multi_tau.hpp:26
uint32_t DataCounter
Definition: multi_tau.hpp:32
LinACorrRTTeensy< Series_size, false > Lin_Corrs[Lin_channels]
Linear ACorrelators.
Definition: multi_tau.hpp:27
void push_data(const counter_t *container, const index_t size) __attribute__((flatten))
Repeatedly calls the MultiTau_ACorr_RT::push_datum() on the given container of counter values.
Definition: multi_tau.hpp:71
DiscarderTeensy< Series_size, int(Series_size/Bin_Ratio), 0 > Discarder
Discarder that discards first #Bin_Ratio points.
Definition: multi_tau.hpp:28
void ch_out() const __attribute__((flatten))
Outputs the Linear Correlator channels through the discarder adapter.
Definition: multi_tau.hpp:82
uint32_t counter_t
Data type received from the pulse counter. It is the fundamental type used for representing series da...
Definition: types.hpp:7
uint_fast8_t index_t
It is used as the array indices and thus determine the maximum size of the Channel_array and the Seri...
Definition: types.hpp:10