1 #ifndef DYSCO_DATA_COLUMN_H
2 #define DYSCO_DATA_COLUMN_H
26 _rnd(std::random_device{}()),
41 double distributionTruncation)
override;
45 <<
"Warning: Initializing random number generator with static seed!\n";
46 _rnd = std::mt19937();
52 const float *metaBuffer,
size_t nRow,
56 size_t blockRow,
size_t a1,
size_t a2)
override;
60 virtual void encode(ThreadDataBase *threadData,
69 size_t nChannels)
const override;
75 ThreadData(std::unique_ptr<TimeBlockEncoder> timeBlockEncoder)
76 :
encoder(std::move(timeBlockEncoder)) {}
77 std::unique_ptr<TimeBlockEncoder>
encoder;
std::unique_ptr< StochasticEncoder< float > > _gausEncoder
virtual void shutdown() overridefinal
To be called before destructing the class.
Normalization _normalization
virtual void initializeDecode(TimeBlockBuffer< data_t > *buffer, const float *metaBuffer, size_t nRow, size_t nAntennae) override
DyscoDistribution _distribution
void operator=(const DyscoDataColumn &source)=delete
A column for storing compressed values in a threaded way, tailored for the data and weight columns th...
void SetStaticRandomizationSeed()
virtual void Prepare(DyscoDistribution distribution, Normalization normalization, double studentsTNu, double distributionTruncation) override
std::unique_ptr< TimeBlockEncoder > encoder
virtual void encode(ThreadDataBase *threadData, TimeBlockBuffer< data_t > *buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t nAntennae) override
virtual void decode(TimeBlockBuffer< data_t > *buffer, const symbol_t *data, size_t blockRow, size_t a1, size_t a2) override
virtual ~DyscoDataColumn()
Destructor.
A column for storing compressed complex values with an approximate Gaussian distribution.
std::unique_ptr< TimeBlockEncoder > _decoder
size_t nRowsInBlock() const
TimeBlockBuffer< data_t >::symbol_t symbol_t
virtual size_t defaultThreadCount() const override
virtual std::unique_ptr< ThreadDataBase > initializeEncodeThread() override
ThreadData(std::unique_ptr< TimeBlockEncoder > timeBlockEncoder)
DyscoDataColumn(DyscoStMan *parent, int dtype)
Create a new column.
virtual size_t metaDataFloatCount(size_t nRow, size_t nPolarizations, size_t nChannels, size_t nAntennae) const override
virtual size_t symbolCount(size_t nRowsInBlock, size_t nPolarizations, size_t nChannels) const override
The main class for the Dysco storage manager.