1#ifndef DYSCO_RFTIME_BLOCK_ENCODER_H 
    2#define DYSCO_RFTIME_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 {
 
 
   57  virtual size_t MetaDataCount(
size_t nRow, 
size_t nPol, 
size_t nChannels,
 
   58                               size_t ) 
const final override {
 
   59    return nPol * (nChannels + nRow);
 
 
   67  void maximizeRows(std::vector<DBufferRow> &data, 
float *metaBuffer,
 
   70      std::vector<DBufferRow> &data, 
float *metaBuffer,
 
   73  template <
bool UseDithering>
 
   76              size_t antennaCount, std::mt19937 *rnd);
 
 
ao::uvector< double > _rowFactors
 
virtual ~RFTimeBlockEncoder() override
 
virtual void EncodeWithDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 &rnd) final override
 
void maximizeRows(std::vector< DBufferRow > &data, float *metaBuffer, const dyscostman::StochasticEncoder< float > &gausEncoder)
 
virtual size_t SymbolCount(size_t nRow) const final override
 
void maximizeChannels(std::vector< DBufferRow > &data, float *metaBuffer, const dyscostman::StochasticEncoder< float > &gausEncoder)
 
virtual void InitializeDecode(const float *metaBuffer, size_t nRow, size_t nAntennae) final override
 
virtual size_t SymbolsPerRow() const final override
 
RFTimeBlockEncoder(size_t nPol, size_t nChannels)
 
virtual void EncodeWithoutDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount) final override
 
virtual size_t MetaDataCount(size_t nRow, size_t nPol, size_t nChannels, size_t) const final override
 
ao::uvector< double > _channelFactors
 
void encode(const dyscostman::StochasticEncoder< float > &gausEncoder, const FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 *rnd)
 
void Normalize(const dyscostman::StochasticEncoder< float > &gausEncoder, TimeBlockBuffer< std::complex< float > > &buffer, size_t antennaCount)
 
std::uniform_int_distribution< unsigned > _ditherDist
 
virtual size_t SymbolCount(size_t nRow, size_t nPol, size_t nChannels) const final override
 
virtual void Decode(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, const symbol_t *symbolBuffer, size_t blockRow, size_t antenna1, size_t antenna2) final override
 
A container similar to std::vector, but one that allows construction without initializing its element...
 
Lossy encoder for stochastic values.
 
Header file for uvector and its relational and swap functions.