Loading...
Searching...
No Matches
casacore::sisco Namespace Reference

## Classes

class | ConditionalQueue
| A queue with a limited size and the ability to query only specific values. More...
struct | CompressorState
class | SiscoReader
| File interface for data stored in the generated model compression (Sisco) format. More...
class | SiscoWriter
| File interface for data stored in the generated model compression (Sisco) format. More...

## Functions

void | DifferenceCompress1D (std::span< const BitFloat > input, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Average2Compress1D (std::span< const BitFloat > input, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | LinearCompress1D (std::span< const BitFloat > input, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Linear3Compress1D (std::span< const BitFloat > input, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | QuadraticCompress1D (std::span< const BitFloat > input, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Quadratic4Compress1D (std::span< const BitFloat > input, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | CubicCompress1D (std::span< const BitFloat > input, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | DifferenceDecompress1D (std::span< const std::byte > mantissa_data, std::span< const std::byte > exponent_data, std::span< BitFloat > output)
void | Average2Decompress1D (std::span< const std::byte > mantissa_data, std::span< const std::byte > exponent_data, std::span< BitFloat > output)
void | LinearDecompress1D (std::span< const std::byte > mantissa_data, std::span< const std::byte > exponent_data, std::span< BitFloat > output)
void | Linear3Decompress1D (std::span< const std::byte > mantissa_data, std::span< const std::byte > exponent_data, std::span< BitFloat > output)
void | QuadraticDecompress1D (std::span< const std::byte > mantissa_data, std::span< const std::byte > exponent_data, std::span< BitFloat > output)
void | Quadratic4Decompress1D (std::span< const std::byte > mantissa_data, std::span< const std::byte > exponent_data, std::span< BitFloat > output)
void | CubicDecompress1D (std::span< const std::byte > mantissa_data, std::span< const std::byte > exponent_data, std::span< BitFloat > output)
void | DirectCompress2D (std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | DifferenceCompress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Average2Compress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | LinearCompress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | LinearQuadraticCompress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Linear3Compress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | QuadraticCompress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Quadratic4Compress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | CubicCompress2D (CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | DirectDecompress2D (std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | DifferenceDecompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | Average2Decompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | LinearDecompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | LinearQuadraticDecompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | Linear3Decompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | QuadraticDecompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | Quadratic4Decompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
void | CubicDecompress2D (CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
size_t | DefaultThreadCount ()
void | Compress1D (int level, std::span< const BitFloat > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Decompress1D (int level, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< BitFloat > row)
void | Compress2D (int level, CompressorState &state, std::span< const float > row, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data)
void | Decompress2D (int level, CompressorState &state, std::span< std::byte > mantissa_data, std::span< std::byte > exponent_data, std::span< float > row)
constexpr BitFloat | PredictThreshold (const BitFloat &value)
| If the predicted value is approximately twice as large as the target value (based on its exponent only), predict zero instead as we're too far off.
constexpr BitFloat | Predict (const BitFloat &previous, int8_t value_exponent)
constexpr BitFloat | Residual (const BitFloat &previous, const BitFloat &value)
constexpr BitFloat | Predict (const BitFloat &previous2, const BitFloat &previous1, int8_t value_exponent)
constexpr BitFloat | Residual (const BitFloat &previous2, const BitFloat &previous1, const BitFloat &value)
constexpr BitFloat | AveragePredict (const BitFloat &previous2, const BitFloat &previous1, int8_t value_exponent)
constexpr BitFloat | Predict (const BitFloat &previous3, const BitFloat &previous2, const BitFloat &previous1, int8_t value_exponent)
constexpr BitFloat | LinearPredict (const BitFloat &previous3, const BitFloat &previous2, const BitFloat &previous1, int8_t value_exponent)
constexpr BitFloat | Predict (const BitFloat &previous4, const BitFloat &previous3, const BitFloat &previous2, const BitFloat &previous1, int8_t value_exponent)
constexpr BitFloat | QuadraticPredict (const BitFloat &previous4, const BitFloat &previous3, const BitFloat &previous2, const BitFloat &previous1, int8_t value_exponent)

## Variables

constexpr size_t | kCompressedMantissaSize
constexpr size_t | kCompressedExponentSize

## Function Documentation

## Average2Compress1D()

void casacore::sisco::Average2Compress1D | ( | std::span< const BitFloat > | input,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress1D().

## Average2Compress2D()

void casacore::sisco::Average2Compress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## Average2Decompress1D()

void casacore::sisco::Average2Decompress1D | ( | std::span< const std::byte > | mantissa_data,
|  | std::span< const std::byte > | exponent_data,
|  | std::span< BitFloat > | output )

Referenced by Decompress1D().

## Average2Decompress2D()

void casacore::sisco::Average2Decompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## AveragePredict()

BitFloat casacore::sisco::AveragePredict | ( | const BitFloat & | previous2,
|  | const BitFloat & | previous1,
|  | int8_t | value_exponent )

inline constexpr

Definition at line 369 of file Sisco.h.

References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().

## Compress1D()

void casacore::sisco::Compress1D | ( | int | level,
|  | std::span< const BitFloat > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

inline

Definition at line 162 of file Sisco.h.

References Average2Compress1D(), CubicCompress1D(), DifferenceCompress1D(), Linear3Compress1D(), LinearCompress1D(), Quadratic4Compress1D(), and QuadraticCompress1D().

## Compress2D()

void casacore::sisco::Compress2D | ( | int | level,
|  | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

inline

Definition at line 220 of file Sisco.h.

References Average2Compress2D(), CubicCompress2D(), DifferenceCompress2D(), DirectCompress2D(), Linear3Compress2D(), LinearCompress2D(), LinearQuadraticCompress2D(), Quadratic4Compress2D(), and QuadraticCompress2D().

## CubicCompress1D()

void casacore::sisco::CubicCompress1D | ( | std::span< const BitFloat > | input,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress1D().

## CubicCompress2D()

void casacore::sisco::CubicCompress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## CubicDecompress1D()

void casacore::sisco::CubicDecompress1D | ( | std::span< const std::byte > | mantissa_data,
|  | std::span< const std::byte > | exponent_data,
|  | std::span< BitFloat > | output )

Referenced by Decompress1D().

## CubicDecompress2D()

void casacore::sisco::CubicDecompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## Decompress1D()

void casacore::sisco::Decompress1D | ( | int | level,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< BitFloat > | row )

inline

Definition at line 191 of file Sisco.h.

References Average2Decompress1D(), CubicDecompress1D(), DifferenceDecompress1D(), Linear3Decompress1D(), LinearDecompress1D(), Quadratic4Decompress1D(), and QuadraticDecompress1D().

## Decompress2D()

void casacore::sisco::Decompress2D | ( | int | level,
|  | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

inline

Definition at line 256 of file Sisco.h.

References Average2Decompress2D(), CubicDecompress2D(), DifferenceDecompress2D(), DirectDecompress2D(), Linear3Decompress2D(), LinearDecompress2D(), LinearQuadraticDecompress2D(), Quadratic4Decompress2D(), and QuadraticDecompress2D().

## DefaultThreadCount()

size_t casacore::sisco::DefaultThreadCount | ( |  | ) |

## DifferenceCompress1D()

void casacore::sisco::DifferenceCompress1D | ( | std::span< const BitFloat > | input,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress1D().

## DifferenceCompress2D()

void casacore::sisco::DifferenceCompress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## DifferenceDecompress1D()

void casacore::sisco::DifferenceDecompress1D | ( | std::span< const std::byte > | mantissa_data,
|  | std::span< const std::byte > | exponent_data,
|  | std::span< BitFloat > | output )

Referenced by Decompress1D().

## DifferenceDecompress2D()

void casacore::sisco::DifferenceDecompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## DirectCompress2D()

void casacore::sisco::DirectCompress2D | ( | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## DirectDecompress2D()

void casacore::sisco::DirectDecompress2D | ( | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## Linear3Compress1D()

void casacore::sisco::Linear3Compress1D | ( | std::span< const BitFloat > | input,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress1D().

## Linear3Compress2D()

void casacore::sisco::Linear3Compress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## Linear3Decompress1D()

void casacore::sisco::Linear3Decompress1D | ( | std::span< const std::byte > | mantissa_data,
|  | std::span< const std::byte > | exponent_data,
|  | std::span< BitFloat > | output )

Referenced by Decompress1D().

## Linear3Decompress2D()

void casacore::sisco::Linear3Decompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## LinearCompress1D()

void casacore::sisco::LinearCompress1D | ( | std::span< const BitFloat > | input,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress1D().

## LinearCompress2D()

void casacore::sisco::LinearCompress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## LinearDecompress1D()

void casacore::sisco::LinearDecompress1D | ( | std::span< const std::byte > | mantissa_data,
|  | std::span< const std::byte > | exponent_data,
|  | std::span< BitFloat > | output )

Referenced by Decompress1D().

## LinearDecompress2D()

void casacore::sisco::LinearDecompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## LinearPredict()

BitFloat casacore::sisco::LinearPredict | ( | const BitFloat & | previous3,
|  | const BitFloat & | previous2,
|  | const BitFloat & | previous1,
|  | int8_t | value_exponent )

inline constexpr

We have to calculate: (-2 p3 + p2 + 4 p1) / 3 Note that sign of p3 was already flipped

Definition at line 420 of file Sisco.h.

References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().

## LinearQuadraticCompress2D()

void casacore::sisco::LinearQuadraticCompress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## LinearQuadraticDecompress2D()

void casacore::sisco::LinearQuadraticDecompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## Predict() [1/4]

BitFloat casacore::sisco::Predict | ( | const BitFloat & | previous,
|  | int8_t | value_exponent )

inline constexpr

Shift predicted mantissa left to have same exponent

Shift predicted mantissa right to have same exponent

Definition at line 305 of file Sisco.h.

References casacore::BitFloat::AllowsMath(), casacore::BitFloat::Exponent(), casacore::BitFloat::Mantissa(), PredictThreshold(), and casacore::BitFloat::Sign().

Referenced by AveragePredict(), LinearPredict(), Predict(), Predict(), Predict(), QuadraticPredict(), Residual(), and Residual().

## Predict() [2/4]

BitFloat casacore::sisco::Predict | ( | const BitFloat & | previous2,
|  | const BitFloat & | previous1,
|  | int8_t | value_exponent )

inline constexpr

Definition at line 340 of file Sisco.h.

References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().

## Predict() [3/4]

BitFloat casacore::sisco::Predict | ( | const BitFloat & | previous3,
|  | const BitFloat & | previous2,
|  | const BitFloat & | previous1,
|  | int8_t | value_exponent )

inline constexpr

We have to calculate: p1 + dp12 + (dp12 - dp23) = p1 + (p1 - p2) + (p1 - p2) - (p2 - p3) = 3p1 - 3p2 + p3

Definition at line 389 of file Sisco.h.

References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().

## Predict() [4/4]

BitFloat casacore::sisco::Predict | ( | const BitFloat & | previous4,
|  | const BitFloat & | previous3,
|  | const BitFloat & | previous2,
|  | const BitFloat & | previous1,
|  | int8_t | value_exponent )

inline constexpr

We have to calculate: p_next = -p4 + 4p3 - 6p2 + 4p1

Definition at line 451 of file Sisco.h.

References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().

## PredictThreshold()

BitFloat casacore::sisco::PredictThreshold | ( | const BitFloat & | value | ) |

inline constexpr

If the predicted value is approximately twice as large as the target value (based on its exponent only), predict zero instead as we're too far off.

This function is tailored for the Predict functions, and expects value to be matched.

Definition at line 298 of file Sisco.h.

References casacore::NewDelAllocator< T >::value.

Referenced by AveragePredict(), LinearPredict(), Predict(), Predict(), Predict(), Predict(), and QuadraticPredict().

## Quadratic4Compress1D()

void casacore::sisco::Quadratic4Compress1D | ( | std::span< const BitFloat > | input,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress1D().

## Quadratic4Compress2D()

void casacore::sisco::Quadratic4Compress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## Quadratic4Decompress1D()

void casacore::sisco::Quadratic4Decompress1D | ( | std::span< const std::byte > | mantissa_data,
|  | std::span< const std::byte > | exponent_data,
|  | std::span< BitFloat > | output )

Referenced by Decompress1D().

## Quadratic4Decompress2D()

void casacore::sisco::Quadratic4Decompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## QuadraticCompress1D()

void casacore::sisco::QuadraticCompress1D | ( | std::span< const BitFloat > | input,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress1D().

## QuadraticCompress2D()

void casacore::sisco::QuadraticCompress2D | ( | CompressorState & | state,
|  | std::span< const float > | row,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data )

Referenced by Compress2D().

## QuadraticDecompress1D()

void casacore::sisco::QuadraticDecompress1D | ( | std::span< const std::byte > | mantissa_data,
|  | std::span< const std::byte > | exponent_data,
|  | std::span< BitFloat > | output )

Referenced by Decompress1D().

## QuadraticDecompress2D()

void casacore::sisco::QuadraticDecompress2D | ( | CompressorState & | state,
|  | std::span< std::byte > | mantissa_data,
|  | std::span< std::byte > | exponent_data,
|  | std::span< float > | row )

Referenced by Decompress2D().

## QuadraticPredict()

BitFloat casacore::sisco::QuadraticPredict | ( | const BitFloat & | previous4,
|  | const BitFloat & | previous3,
|  | const BitFloat & | previous2,
|  | const BitFloat & | previous1,
|  | int8_t | value_exponent )

inline constexpr

We have to calculate: p_next = (3p4 - 5p3 - 3p2 + 9p1) / 4

Definition at line 488 of file Sisco.h.

References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().

## Residual() [1/2]

BitFloat casacore::sisco::Residual | ( | const BitFloat & | previous,
|  | const BitFloat & | value )

inline constexpr

Definition at line 332 of file Sisco.h.

References casacore::NewDelAllocator< T >::value, and Predict().

## Residual() [2/2]

BitFloat casacore::sisco::Residual | ( | const BitFloat & | previous2,
|  | const BitFloat & | previous1,
|  | const BitFloat & | value )

inline constexpr

Definition at line 360 of file Sisco.h.

References casacore::NewDelAllocator< T >::value, and Predict().

## Variable Documentation

## kCompressedExponentSize

size_t casacore::sisco::kCompressedExponentSize

constexpr

Definition at line 21 of file Sisco.h.

## kCompressedMantissaSize

size_t casacore::sisco::kCompressedMantissaSize

constexpr

Definition at line 20 of file Sisco.h.