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) {
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;
61 virtual size_t SymbolCount(
size_t nRow,
size_t nPol,
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;
virtual ~TimeBlockEncoder()
virtual size_t SymbolsPerRow() const =0
virtual size_t SymbolCount(size_t nRow, size_t nPol, size_t nChannels) const =0
static bool isfinite(const std::complex< double > &val)
bool isfinite(const std::complex< T > &val)
virtual void EncodeWithoutDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount)=0
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 size_t MetaDataCount(size_t nRow, size_t nPol, size_t nChannels, size_t nAntennae) const =0
LatticeExprNode sqrt(const LatticeExprNode &expr)
virtual void EncodeWithDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 &rnd)=0
Header file for uvector and its relational and swap functions.
TimeBlockBuffer< std::complex< float > > FBuffer
TimeBlockBuffer< std::complex< double > > DBuffer
virtual void InitializeDecode(const float *metaBuffer, size_t nRow, size_t nAntennae)=0
Lossy encoder for stochastic values.
TimeBlockBuffer< std::complex< double > >::DataRow DBufferRow
TimeBlockBuffer< std::complex< float > >::DataRow FBufferRow
void Include(const std::complex< double > &val)