1#ifndef DYSCO_TIME_BLOCK_ENCODER_H 
    2#define DYSCO_TIME_BLOCK_ENCODER_H 
   16  void Include(
const std::complex<double> &val) {
 
   19      _value += val.real() * val.real() + val.imag() * val.imag();
 
 
   26  static bool isfinite(
const std::complex<double> &val) {
 
   27    return std::isfinite(val.real()) && std::isfinite(val.imag());
 
 
 
   47      float *metaBuffer, 
symbol_t *symbolBuffer, 
size_t antennaCount,
 
   48      std::mt19937 &rnd) = 0;
 
   52      float *metaBuffer, 
symbol_t *symbolBuffer, 
size_t antennaCount) = 0;
 
   55                                size_t nAntennae) = 0;
 
   59                      size_t blockRow, 
size_t antenna1, 
size_t antenna2) = 0;
 
   62                             size_t nChannels) 
const = 0;
 
   68  virtual size_t MetaDataCount(
size_t nRow, 
size_t nPol, 
size_t nChannels,
 
   69                               size_t nAntennae) 
const = 0;
 
 
static bool isfinite(const std::complex< double > &val)
 
void Include(const std::complex< double > &val)
 
virtual size_t SymbolCount(size_t nRow, size_t nPol, size_t nChannels) const =0
 
virtual size_t SymbolCount(size_t nRow) const =0
 
TimeBlockBuffer< std::complex< double > >::DataRow DBufferRow
 
TimeBlockBuffer< std::complex< float > > FBuffer
 
virtual ~TimeBlockEncoder()
 
virtual size_t MetaDataCount(size_t nRow, size_t nPol, size_t nChannels, size_t nAntennae) const =0
 
virtual void EncodeWithDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 &rnd)=0
 
TimeBlockBuffer< std::complex< double > > DBuffer
 
virtual size_t SymbolsPerRow() const =0
 
virtual void InitializeDecode(const float *metaBuffer, size_t nRow, size_t nAntennae)=0
 
TimeBlockBuffer< std::complex< float > >::DataRow FBufferRow
 
virtual void Decode(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, const symbol_t *symbolBuffer, size_t blockRow, size_t antenna1, size_t antenna2)=0
 
virtual void EncodeWithoutDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount)=0
 
Lossy encoder for stochastic values.
 
Header file for uvector and its relational and swap functions.