|
casacore
|
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 |
| void casacore::sisco::Average2Compress1D | ( | std::span< const BitFloat > | input, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress1D().
| 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().
| 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().
| 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().
|
inlineconstexpr |
Definition at line 369 of file Sisco.h.
References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().
|
inline |
Definition at line 162 of file Sisco.h.
References Average2Compress1D(), CubicCompress1D(), DifferenceCompress1D(), Linear3Compress1D(), LinearCompress1D(), Quadratic4Compress1D(), and QuadraticCompress1D().
|
inline |
Definition at line 220 of file Sisco.h.
References Average2Compress2D(), CubicCompress2D(), DifferenceCompress2D(), DirectCompress2D(), Linear3Compress2D(), LinearCompress2D(), LinearQuadraticCompress2D(), Quadratic4Compress2D(), and QuadraticCompress2D().
| void casacore::sisco::CubicCompress1D | ( | std::span< const BitFloat > | input, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress1D().
| 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().
| 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().
| 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().
|
inline |
Definition at line 191 of file Sisco.h.
References Average2Decompress1D(), CubicDecompress1D(), DifferenceDecompress1D(), Linear3Decompress1D(), LinearDecompress1D(), Quadratic4Decompress1D(), and QuadraticDecompress1D().
|
inline |
Definition at line 256 of file Sisco.h.
References Average2Decompress2D(), CubicDecompress2D(), DifferenceDecompress2D(), DirectDecompress2D(), Linear3Decompress2D(), LinearDecompress2D(), LinearQuadraticDecompress2D(), Quadratic4Decompress2D(), and QuadraticDecompress2D().
| size_t casacore::sisco::DefaultThreadCount | ( | ) |
| void casacore::sisco::DifferenceCompress1D | ( | std::span< const BitFloat > | input, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress1D().
| 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().
| 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().
| 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().
| void casacore::sisco::DirectCompress2D | ( | std::span< const float > | row, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress2D().
| void casacore::sisco::DirectDecompress2D | ( | std::span< std::byte > | mantissa_data, |
| std::span< std::byte > | exponent_data, | ||
| std::span< float > | row ) |
Referenced by Decompress2D().
| void casacore::sisco::Linear3Compress1D | ( | std::span< const BitFloat > | input, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress1D().
| 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().
| 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().
| 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().
| void casacore::sisco::LinearCompress1D | ( | std::span< const BitFloat > | input, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress1D().
| 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().
| 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().
| 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().
|
inlineconstexpr |
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().
| 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().
| 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().
|
inlineconstexpr |
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().
|
inlineconstexpr |
Definition at line 340 of file Sisco.h.
References casacore::BitFloat::AllowsMath(), Predict(), and PredictThreshold().
|
inlineconstexpr |
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().
|
inlineconstexpr |
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().
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().
| void casacore::sisco::Quadratic4Compress1D | ( | std::span< const BitFloat > | input, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress1D().
| 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().
| 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().
| 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().
| void casacore::sisco::QuadraticCompress1D | ( | std::span< const BitFloat > | input, |
| std::span< std::byte > | mantissa_data, | ||
| std::span< std::byte > | exponent_data ) |
Referenced by Compress1D().
| 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().
| 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().
| 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().
|
inlineconstexpr |
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().
|
inlineconstexpr |
Definition at line 332 of file Sisco.h.
References casacore::NewDelAllocator< T >::value, and Predict().
|
inlineconstexpr |
Definition at line 360 of file Sisco.h.
References casacore::NewDelAllocator< T >::value, and Predict().