1 #ifndef DYSCO_AFTIME_BLOCK_ENCODER_H 
    2 #define DYSCO_AFTIME_BLOCK_ENCODER_H 
   22       float *metaBuffer, 
symbol_t *symbolBuffer, 
size_t antennaCount,
 
   23       std::mt19937 &rnd) 
final override {
 
   24     encode<true>(gausEncoder, buffer, metaBuffer, symbolBuffer, antennaCount,
 
   30       float *metaBuffer, 
symbol_t *symbolBuffer,
 
   31       size_t antennaCount) 
final override {
 
   32     encode<false>(gausEncoder, buffer, metaBuffer, symbolBuffer, antennaCount,
 
   37                                 size_t nAntennae) 
final override;
 
   41                       size_t blockRow, 
size_t antenna1,
 
   42                       size_t antenna2) 
final override;
 
   45                              size_t nChannels) 
const final override {
 
   46     return nRow * nChannels * nPol * 2 ;
 
   49   virtual size_t SymbolCount(
size_t nRow) 
const final override {
 
   58                                size_t nAntennae) 
const final override {
 
   59     return nPol * (nChannels + nAntennae);
 
   68                             size_t polIndex, 
size_t antennaCount);
 
   70   template <
bool UseDithering>
 
   73               size_t antennaCount, std::mt19937 *rnd);
 
   76                            size_t antennaIndex, 
size_t antennaCount,
 
   77                            size_t polIndex, 
double factor);
 
   79                            size_t visIndex, 
double factor);
 
   81   void fitToMaximum(std::vector<DBufferRow> &data, 
float *metaBuffer,
 
virtual size_t SymbolsPerRow() const finaloverride
virtual size_t SymbolCount(size_t nRow, size_t nPol, size_t nChannels) const finaloverride
virtual void EncodeWithDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 &rnd) finaloverride
virtual ~AFTimeBlockEncoder() override
AFTimeBlockEncoder(size_t nPol, size_t nChannels, bool fitToMaximum)
virtual void InitializeDecode(const float *metaBuffer, size_t nRow, size_t nAntennae) finaloverride
void changeAntennaFactor(std::vector< DBufferRow > &data, float *metaBuffer, size_t antennaIndex, size_t antennaCount, size_t polIndex, double factor)
ao::uvector< double > _rmsPerAntenna
void changeChannelFactor(std::vector< DBufferRow > &data, float *metaBuffer, size_t visIndex, double factor)
virtual void EncodeWithoutDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount) finaloverride
Header file for uvector and its relational and swap functions. 
virtual size_t SymbolCount(size_t nRow) const finaloverride
TimeBlockBuffer< std::complex< float > > FBuffer
void encode(const dyscostman::StochasticEncoder< float > &gausEncoder, const FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 *rnd)
void fitToMaximum(std::vector< DBufferRow > &data, float *metaBuffer, const dyscostman::StochasticEncoder< float > &gausEncoder, size_t antennaCount)
void Normalize(const dyscostman::StochasticEncoder< float > &gausEncoder, TimeBlockBuffer< std::complex< float >> &buffer, size_t antennaCount)
Lossy encoder for stochastic values. 
virtual size_t MetaDataCount(size_t, size_t nPol, size_t nChannels, size_t nAntennae) const finaloverride
ao::uvector< double > _rmsPerChannel
virtual void Decode(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, const symbol_t *symbolBuffer, size_t blockRow, size_t antenna1, size_t antenna2) finaloverride
void calculateAntennaeRMS(const std::vector< DBufferRow > &data, size_t polIndex, size_t antennaCount)
std::uniform_int_distribution< unsigned > _ditherDist