casacore
Loading...
Searching...
No Matches
dyscoweightcolumn.h
Go to the documentation of this file.
1#ifndef DYSCO_WEIGHT_COLUMN_H
2#define DYSCO_WEIGHT_COLUMN_H
3
4#include "stochasticencoder.h"
7
8namespace dyscostman {
9
10class DyscoStMan;
11
17class DyscoWeightColumn final : public ThreadedDyscoColumn<float> {
18 public:
24
25 DyscoWeightColumn(const DyscoWeightColumn &source) = delete;
26
27 void operator=(const DyscoWeightColumn &source) = delete;
28
31
32 virtual void Prepare(DyscoDistribution distribution, Normalization normalization,
33 double studentsTNu, double distributionTruncation) override;
34
35 protected:
36 virtual void initializeDecode(TimeBlockBuffer<data_t> *buffer, const float *metaBuffer,
37 size_t nRow, size_t nAntennae) override;
38
39 virtual void decode(TimeBlockBuffer<data_t> *buffer, const symbol_t *data, size_t blockRow,
40 size_t a1, size_t a2) override;
41
42 virtual std::unique_ptr<ThreadDataBase> initializeEncodeThread() override { return nullptr; }
43
44 virtual void encode(ThreadDataBase *threadData, TimeBlockBuffer<data_t> *buffer,
45 float *metaBuffer, symbol_t *symbolBuffer, size_t nAntennae) override;
46
47 virtual size_t metaDataFloatCount(size_t /*nRows*/, size_t /*nPolarizations*/,
48 size_t /*nChannels*/, size_t /*nAntennae*/) const override {
49 return _encoder->MetaDataFloatCount();
50 }
51
52 virtual size_t symbolCount(size_t nRowsInBlock, size_t /*nPolarizations*/,
53 size_t /*nChannels*/) const override {
54 return _encoder->SymbolCount(nRowsInBlock);
55 }
56
57 private:
58 std::unique_ptr<WeightBlockEncoder> _encoder;
59};
60
61} // namespace dyscostman
62
63#endif
The main class for the Dysco storage manager.
Definition dyscostman.h:46
virtual ~DyscoWeightColumn()
Destructor.
DyscoWeightColumn(DyscoStMan *parent, int dtype)
Create a new column.
virtual void decode(TimeBlockBuffer< data_t > *buffer, const symbol_t *data, size_t blockRow, size_t a1, size_t a2) override
virtual size_t symbolCount(size_t nRowsInBlock, size_t, size_t) const override
DyscoWeightColumn(const DyscoWeightColumn &source)=delete
void operator=(const DyscoWeightColumn &source)=delete
std::unique_ptr< WeightBlockEncoder > _encoder
virtual std::unique_ptr< ThreadDataBase > initializeEncodeThread() override
virtual void Prepare(DyscoDistribution distribution, Normalization normalization, double studentsTNu, double distributionTruncation) override
virtual void encode(ThreadDataBase *threadData, TimeBlockBuffer< data_t > *buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t nAntennae) override
virtual void initializeDecode(TimeBlockBuffer< data_t > *buffer, const float *metaBuffer, size_t nRow, size_t nAntennae) override
virtual size_t metaDataFloatCount(size_t, size_t, size_t, size_t) const override
TimeBlockBuffer< data_t >::symbol_t symbol_t
ThreadedDyscoColumn(DyscoStMan *parent, int dtype)
virtual void shutdown() override final