Loading...
Searching...
No Matches
dyscostman::DyscoDataColumn Class Referencefinal

A column for storing compressed complex values with an approximate Gaussian distribution. More...

`#include <dyscodatacolumn.h>`

## Classes

struct | ThreadData

## Public Member Functions

| DyscoDataColumn (DyscoStMan *parent, int dtype)
| Create a new column.
| DyscoDataColumn (const DyscoDataColumn &source)=delete
void | operator= (const DyscoDataColumn &source)=delete
virtual | ~DyscoDataColumn ()
| Destructor.
virtual void | Prepare (DyscoDistribution distribution, Normalization normalization, double studentsTNu, double distributionTruncation) override
void | SetStaticRandomizationSeed ()
Public Member Functions inherited from dyscostman::ThreadedDyscoColumn< std::complex< float > >
void | getArrayV (casacore::rownr_t rowNr, casacore::ArrayBase &dataPtr)
void | putArrayV (casacore::rownr_t rowNr, const casacore::ArrayBase &dataPtr)
void | getArrayV (casacore::rownr_t rowNr, casacore::ArrayBase &dataPtr)
void | putArrayV (casacore::rownr_t rowNr, const casacore::ArrayBase &dataPtr)
| ThreadedDyscoColumn (DyscoStMan *parent, int dtype)
| Create a new column.
void | operator= (const ThreadedDyscoColumn &source)=delete
virtual | ~ThreadedDyscoColumn ()
| Destructor.
virtual void | setShapeColumn (const casacore::IPosition &shape) override
| Set the dimensions of values in this column.
virtual casacore::IPosition | shape (casacore::rownr_t) override
| Get the dimensions of the values in a particular row.
virtual void | InitializeAfterNRowsPerBlockIsKnown () override
| Prepare this column for reading/writing.
void | SetBitsPerSymbol (unsigned bitsPerSymbol)
| Set the bits per symbol.
virtual size_t | CalculateBlockSize (size_t nRowsInBlock, size_t nAntennae) const final override
virtual size_t | ExtraHeaderSize () const override
| Get number of bytes needed for column header of this column.
virtual void | SerializeExtraHeader (std::ostream &stream) const final override
virtual void | UnserializeExtraHeader (std::istream &stream) final override
Public Member Functions inherited from dyscostman::DyscoStManColumn
| DyscoStManColumn (DyscoStMan *parent, int dtype)
| Constructor, to be overloaded by subclass.
virtual | ~DyscoStManColumn ()
| Destructor.
virtual casacore::Bool | isWritable () const override
| Whether this column is writable.
size_t | OffsetInBlock () const
void | SetOffsetInBlock (size_t offsetInBlock)
Public Member Functions inherited from casacore::StManColumnBase
| StManColumnBase (int dataType)
| Default constructor.
| ~StManColumnBase ()
| StManColumnBase (const StManColumnBase &)=delete
| The object cannot be copied.
StManColumnBase & | operator= (const StManColumnBase &)=delete
| The object cannot be assigned to.
virtual int | dataType () const
| Return the data type of the column.
DataType | dtype () const
Int | elemSize () const
| Return the size of an element of the column's data type.
Public Member Functions inherited from casacore::DataManagerColumn
| DataManagerColumn ()
| Create a column.
virtual | ~DataManagerColumn ()
| Frees up the storage.
| DataManagerColumn (const DataManagerColumn &)=delete
| The copy constructor cannot be used for this base class.
DataManagerColumn & | operator= (const DataManagerColumn &)=delete
| Assignment cannot be used for this base class.
void | setIsFixedShape (Bool isFixedShape)
| Set the isFixedShape flag.
Bool | isFixedShape () const
| Is this a fixed shape column?
virtual String | dataTypeId () const
| Get the data type id of the column for dataType==TpOther.
virtual void | setMaxLength (uInt maxLength)
| Set the maximum length of the value (can be used for strings).
void | setFixedShapeColumn (const IPosition &shape)
| Set the shape of all (fixed-shaped) arrays in the column.
virtual void | setShape (rownr_t rownr, const IPosition &shape)
| Set the shape of an (variable-shaped) array in the given row.
virtual void | setShapeTiled (rownr_t rownr, const IPosition &shape, const IPosition &tileShape)
| Set the shape and tile shape of an (variable-shaped) array in the given row.
virtual Bool | isShapeDefined (rownr_t rownr)
| Is the value shape defined in the given row?
virtual uInt | ndim (rownr_t rownr)
| Get the dimensionality of the item in the given row.
virtual IPosition | shape (rownr_t rownr)
| Get the shape of the item in the given row.
virtual IPosition | tileShape (rownr_t rownr)
| Get the tile shape of the item in the given row.
virtual Bool | canChangeShape () const
| Can the data manager handle chaging the shape of an existing array?
ColumnCache & | columnCache ()
| Get access to the ColumnCache object.
const ColumnCache * | columnCachePtr () const
void | get (rownr_t rownr, Bool *dataPtr)
| Get the scalar value in the given row.
void | get (rownr_t rownr, uChar *dataPtr)
void | get (rownr_t rownr, Short *dataPtr)
void | get (rownr_t rownr, uShort *dataPtr)
void | get (rownr_t rownr, Int *dataPtr)
void | get (rownr_t rownr, uInt *dataPtr)
void | get (rownr_t rownr, Int64 *dataPtr)
void | get (rownr_t rownr, float *dataPtr)
void | get (rownr_t rownr, double *dataPtr)
void | get (rownr_t rownr, Complex *dataPtr)
void | get (rownr_t rownr, DComplex *dataPtr)
void | get (rownr_t rownr, String *dataPtr)
void | get (rownr_t rownr, void *dataPtr)
| This function is the get for all non-standard data types.
void | put (rownr_t rownr, const Bool *dataPtr)
| Put the scalar value into the given row.
void | put (rownr_t rownr, const uChar *dataPtr)
void | put (rownr_t rownr, const Short *dataPtr)
void | put (rownr_t rownr, const uShort *dataPtr)
void | put (rownr_t rownr, const Int *dataPtr)
void | put (rownr_t rownr, const uInt *dataPtr)
void | put (rownr_t rownr, const Int64 *dataPtr)
void | put (rownr_t rownr, const float *dataPtr)
void | put (rownr_t rownr, const double *dataPtr)
void | put (rownr_t rownr, const Complex *dataPtr)
void | put (rownr_t rownr, const DComplex *dataPtr)
void | put (rownr_t rownr, const String *dataPtr)
void | put (rownr_t rownr, const void *dataPtr)
| This function is the put for all non-standard data types.
virtual void | getScalarColumnV (ArrayBase &dataPtr)
| Get all scalar values in the column.
virtual void | putScalarColumnV (const ArrayBase &dataPtr)
| Put all scalar values in the column.
virtual void | getScalarColumnCellsV (const RefRows &rownrs, ArrayBase &dataPtr)
| Get some scalar values in the column.
virtual void | putScalarColumnCellsV (const RefRows &rownrs, const ArrayBase &dataPtr)
| Put some scalar values in the column.
virtual void | getArrayV (rownr_t rownr, ArrayBase &dataPtr)
| Get the array value in the given row.
virtual void | putArrayV (rownr_t rownr, const ArrayBase &data)
| Put the array value into the given row.
virtual void | getArrayColumnV (ArrayBase &data)
| Get all array values in the column.
virtual void | putArrayColumnV (const ArrayBase &data)
| Put all array values in the column.
virtual void | getArrayColumnCellsV (const RefRows &rownrs, ArrayBase &data)
| Get some array values in the column.
virtual void | putArrayColumnCellsV (const RefRows &rownrs, const ArrayBase &data)
| Put some array values in the column.
virtual void | getSliceV (rownr_t rownr, const Slicer &slicer, ArrayBase &data)
| Get a section of the array in the given row.
virtual void | putSliceV (rownr_t rownr, const Slicer &slicer, const ArrayBase &data)
| Put into a section of the array in the given row.
virtual void | getColumnSliceV (const Slicer &slicer, ArrayBase &data)
| Get a section of all arrays in the column.
virtual void | putColumnSliceV (const Slicer &slicer, const ArrayBase &data)
| Put into a section of all arrays in the column.
virtual void | getColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data)
| Get a section of some arrays in the column.
virtual void | putColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data)
| Put into a section of some arrays in the column.
void | throwGet () const
| Throw an "invalid operation" exception for the default implementation of get.
void | throwPut () const
| Throw an "invalid operation" exception for the default implementation of put.
void | setColumnName (const String &colName)
| Set the column name.
const String & | columnName () const
| Get rhe column name.

## Protected Member Functions

virtual void | initializeDecode (TimeBlockBuffer< data_t > *buffer, const float *metaBuffer, size_t nRow, 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 std::unique_ptr< ThreadDataBase > | initializeEncodeThread () override
virtual void | encode (ThreadDataBase *threadData, TimeBlockBuffer< data_t > *buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t nAntennae) override
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
virtual size_t | defaultThreadCount () const override
Protected Member Functions inherited from dyscostman::ThreadedDyscoColumn< std::complex< float > >
virtual void | shutdown () override final
| To be called before destructing the class.
size_t | getBitsPerSymbol () const
Protected Member Functions inherited from dyscostman::DyscoStManColumn
DyscoStMan & | storageManager () const
| Get the storage manager for this column.
void | readCompressedData (size_t blockIndex, unsigned char *dest, size_t size)
| Read a row of compressed data from the stman file.
void | writeCompressedData (size_t blockIndex, const unsigned char *data, size_t size)
| Write a row of compressed data to the stman file.
uint64_t | nBlocksInFile () const
| Get the actual number of blocks in the file.
size_t | getBlockIndex (uint64_t row) const
size_t | getRowWithinBlock (uint64_t row) const
size_t | nRowsInBlock () const
size_t | nAntennae () const
uint64_t | getRowIndex (size_t block) const
bool | areOffsetsInitialized () const
void | initializeRowsPerBlock (size_t rowsPerBlock, size_t antennaCount)
Protected Member Functions inherited from casacore::DataManagerColumn
virtual void | getBool (rownr_t rownr, Bool *dataPtr)
| Get the scalar value in the given row.
virtual void | getuChar (rownr_t rownr, uChar *dataPtr)
virtual void | getShort (rownr_t rownr, Short *dataPtr)
virtual void | getuShort (rownr_t rownr, uShort *dataPtr)
virtual void | getInt (rownr_t rownr, Int *dataPtr)
virtual void | getuInt (rownr_t rownr, uInt *dataPtr)
virtual void | getInt64 (rownr_t rownr, Int64 *dataPtr)
virtual void | getfloat (rownr_t rownr, float *dataPtr)
virtual void | getdouble (rownr_t rownr, double *dataPtr)
virtual void | getComplex (rownr_t rownr, Complex *dataPtr)
virtual void | getDComplex (rownr_t rownr, DComplex *dataPtr)
virtual void | getString (rownr_t rownr, String *dataPtr)
virtual void | getOther (rownr_t rownr, void *dataPtr)
| This function is the get for all non-standard data types.
virtual void | putBool (rownr_t rownr, const Bool *dataPtr)
| Put the scalar value into the given row.
virtual void | putuChar (rownr_t rownr, const uChar *dataPtr)
virtual void | putShort (rownr_t rownr, const Short *dataPtr)
virtual void | putuShort (rownr_t rownr, const uShort *dataPtr)
virtual void | putInt (rownr_t rownr, const Int *dataPtr)
virtual void | putuInt (rownr_t rownr, const uInt *dataPtr)
virtual void | putInt64 (rownr_t rownr, const Int64 *dataPtr)
virtual void | putfloat (rownr_t rownr, const float *dataPtr)
virtual void | putdouble (rownr_t rownr, const double *dataPtr)
virtual void | putComplex (rownr_t rownr, const Complex *dataPtr)
virtual void | putDComplex (rownr_t rownr, const DComplex *dataPtr)
virtual void | putString (rownr_t rownr, const String *dataPtr)
virtual void | putOther (rownr_t rownr, const void *dataPtr)
| This function is the put for all non-standard data types.
void | getScalarColumnBase (ArrayBase &dataPtr)
| The default implementations of get and put functions.
void | putScalarColumnBase (const ArrayBase &dataPtr)
void | getScalarColumnCellsBase (const RefRows &rownrs, ArrayBase &dataPtr)
void | putScalarColumnCellsBase (const RefRows &rownrs, const ArrayBase &dataPtr)
void | getArrayColumnBase (ArrayBase &data)
void | putArrayColumnBase (const ArrayBase &data)
void | getArrayColumnCellsBase (const RefRows &rownrs, ArrayBase &data)
void | putArrayColumnCellsBase (const RefRows &rownrs, const ArrayBase &data)
void | getSliceBase (rownr_t rownr, const Slicer &slicer, ArrayBase &data)
void | putSliceBase (rownr_t rownr, const Slicer &slicer, const ArrayBase &data)
void | getColumnSliceBase (const Slicer &slicer, ArrayBase &data)
void | putColumnSliceBase (const Slicer &slicer, const ArrayBase &data)
void | getColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data)
void | putColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data)

## Private Attributes

std::mt19937 | _rnd
std::unique_ptr< StochasticEncoder< float > > | _gausEncoder
std::unique_ptr< TimeBlockEncoder > | _decoder
DyscoDistribution | _distribution
Normalization | _normalization
double | _studentsTNu
bool | _randomize

## Additional Inherited Members

Public Types inherited from dyscostman::ThreadedDyscoColumn< std::complex< float > >
typedef std::complex< float > | data_t
Static Public Member Functions inherited from casacore::StManColumnBase
static Bool | isNativeDataType (int dtype)
| Test if the given data type is supported by storage managers.
Protected Types inherited from dyscostman::ThreadedDyscoColumn< std::complex< float > >
typedef TimeBlockBuffer< data_t >::symbol_t | symbol_t

## Detailed Description

A column for storing compressed complex values with an approximate Gaussian distribution.

Author
  André Offringa

Definition at line 18 of file dyscodatacolumn.h.

## Constructor & Destructor Documentation

## DyscoDataColumn() [1/2]

dyscostman::DyscoDataColumn::DyscoDataColumn | ( | DyscoStMan * | parent,
|  | int | dtype )

inline

Create a new column.

Internally called by DyscoStMan when creating a new column.

Definition at line 24 of file dyscodatacolumn.h.

References _distribution, _gausEncoder, _normalization, _randomize, _rnd, casacore::StManColumnBase::dtype(), dyscostman::GaussianDistribution, and dyscostman::ThreadedDyscoColumn< std::complex< float > >::ThreadedDyscoColumn().

Referenced by DyscoDataColumn(), and operator=().

## DyscoDataColumn() [2/2]

dyscostman::DyscoDataColumn::DyscoDataColumn | ( | const DyscoDataColumn & | source | ) |

delete

References DyscoDataColumn().

## ~DyscoDataColumn()

virtual dyscostman::DyscoDataColumn::~DyscoDataColumn | ( |  | ) |

inline virtual

Destructor.

Definition at line 37 of file dyscodatacolumn.h.

References dyscostman::ThreadedDyscoColumn< std::complex< float > >::shutdown().

## Member Function Documentation

## decode()

virtual void dyscostman::DyscoDataColumn::decode | ( | TimeBlockBuffer< data_t > * | buffer,
|  | const symbol_t * | data,
|  | size_t | blockRow,
|  | size_t | a1,
|  | size_t | a2 )

override protected virtual

Implements dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## defaultThreadCount()

virtual size_t dyscostman::DyscoDataColumn::defaultThreadCount | ( |  | ) | const

override protected virtual

Reimplemented from dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## encode()

virtual void dyscostman::DyscoDataColumn::encode | ( | ThreadDataBase * | threadData,
|  | TimeBlockBuffer< data_t > * | buffer,
|  | float * | metaBuffer,
|  | symbol_t * | symbolBuffer,
|  | size_t | nAntennae )

override protected virtual

Implements dyscostman::ThreadedDyscoColumn< std::complex< float > >.

References dyscostman::DyscoStManColumn::nAntennae().

## initializeDecode()

virtual void dyscostman::DyscoDataColumn::initializeDecode | ( | TimeBlockBuffer< data_t > * | buffer,
|  | const float * | metaBuffer,
|  | size_t | nRow,
|  | size_t | nAntennae )

override protected virtual

Implements dyscostman::ThreadedDyscoColumn< std::complex< float > >.

References dyscostman::DyscoStManColumn::nAntennae().

## initializeEncodeThread()

virtual std::unique_ptr< ThreadDataBase > dyscostman::DyscoDataColumn::initializeEncodeThread | ( |  | ) |

override protected virtual

Implements dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## metaDataFloatCount()

virtual size_t dyscostman::DyscoDataColumn::metaDataFloatCount | ( | size_t | nRow,
|  | size_t | nPolarizations,
|  | size_t | nChannels,
|  | size_t | nAntennae ) const

override protected virtual

Implements dyscostman::ThreadedDyscoColumn< std::complex< float > >.

References dyscostman::DyscoStManColumn::nAntennae().

## operator=()

void dyscostman::DyscoDataColumn::operator= | ( | const DyscoDataColumn & | source | ) |

delete

References DyscoDataColumn().

## Prepare()

virtual void dyscostman::DyscoDataColumn::Prepare | ( | DyscoDistribution | distribution,
|  | Normalization | normalization,
|  | double | studentsTNu,
|  | double | distributionTruncation )

override virtual

Reimplemented from dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## SetStaticRandomizationSeed()

void dyscostman::DyscoDataColumn::SetStaticRandomizationSeed | ( |  | ) |

inline

Definition at line 43 of file dyscodatacolumn.h.

References _randomize, and _rnd.

## symbolCount()

virtual size_t dyscostman::DyscoDataColumn::symbolCount | ( | size_t | nRowsInBlock,
|  | size_t | nPolarizations,
|  | size_t | nChannels ) const

override protected virtual

Implements dyscostman::ThreadedDyscoColumn< std::complex< float > >.

References dyscostman::DyscoStManColumn::nRowsInBlock().

## Member Data Documentation

## _decoder

std::unique_ptr<TimeBlockEncoder> dyscostman::DyscoDataColumn::_decoder

private

Definition at line 83 of file dyscodatacolumn.h.

## _distribution

DyscoDistribution dyscostman::DyscoDataColumn::_distribution

private

Definition at line 84 of file dyscodatacolumn.h.

Referenced by DyscoDataColumn().

## _gausEncoder

std::unique_ptr<StochasticEncoder<float> > dyscostman::DyscoDataColumn::_gausEncoder

private

Definition at line 82 of file dyscodatacolumn.h.

Referenced by DyscoDataColumn().

## _normalization

Normalization dyscostman::DyscoDataColumn::_normalization

private

Definition at line 85 of file dyscodatacolumn.h.

Referenced by DyscoDataColumn().

## _randomize

bool dyscostman::DyscoDataColumn::_randomize

private

Definition at line 87 of file dyscodatacolumn.h.

Referenced by DyscoDataColumn(), and SetStaticRandomizationSeed().

## _rnd

std::mt19937 dyscostman::DyscoDataColumn::_rnd

private

Definition at line 81 of file dyscodatacolumn.h.

Referenced by DyscoDataColumn(), and SetStaticRandomizationSeed().

## _studentsTNu

double dyscostman::DyscoDataColumn::_studentsTNu

private

Definition at line 86 of file dyscodatacolumn.h.

The documentation for this class was generated from the following file:

- tables/Dysco/dyscodatacolumn.h