Pack 32-bit integers into 512-bit SIMD words using elias gamma with vbyte for short lists.
More...
|
|
static void | unittest (void) |
| | Unit test this class.
|
| |
| static void | static_decode (integer *decoded, size_t integers_to_decode, const void *source_as_void, size_t source_length) |
| | Decode a sequence of integers encoded with this codex. More...
|
| |
| static size_t | bytes_needed_for (uint32_t value) |
| | Return the number of bytes necessary to encode the integer value. More...
|
| |
| static size_t | bytes_needed_for (uint64_t value) |
| | Return the number of bytes necessary to encode the integer value. More...
|
| |
| template<typename DESTINATION > |
| static forceinline void | compress_into (DESTINATION &destination, uint32_t value) |
| | Encode the given integer placing the encoding into destination (whose size is not validated). More...
|
| |
| template<typename DESTINATION > |
| static forceinline void | compress_into (DESTINATION &destination, uint64_t value) |
| | Encode the given integer placing the encoding into destination (whose size is not validated). More...
|
| |
| template<typename SOURCE > |
| static forceinline void | decompress_into (uint16_t *decoded, SOURCE &source) |
| | Decode the given integer placing the encoding into destination (whose size is not validated). More...
|
| |
| template<typename SOURCE > |
| static forceinline void | decompress_into (uint32_t *decoded, SOURCE &source) |
| | Decode the given integer placing the encoding into destination (whose size is not validated). More...
|
| |
| template<typename SOURCE > |
| static forceinline void | decompress_into (uint64_t *decoded, SOURCE &source) |
| | Decode the given integer placing the encoding into destination (whose size is not validated). More...
|
| |
|
static void | unittest (void) |
| | Unit test this class.
|
| |
| static size_t | d1_encode (integer *encoded, const integer *source, size_t source_integers) |
| | Convert an array of integers into an array of D1 (delta, d-gap) encoded integers. More...
|
| |
| static size_t | d1_decode (integer *decoded, const integer *source, size_t source_integers) |
| | Convert a D1 encoded array of integers into an array of integers. More...
|
| |
| static size_t | dn_encode (integer *encoded, const integer *source, size_t source_integers, size_t n=1) |
| | Convert an array of integers into an array of Dn (delta, d-gap) encoded integers with a gap of n. More...
|
| |
| static size_t | dn_decode (integer *decoded, const integer *source, size_t source_integers, size_t n=1) |
| | Convert a Dn encoded array of integers into an array of integers. More...
|
| |
| static void | unittest_one (compress_integer &encoder, const std::vector< uint32_t > &sequence) |
| | Test one sequence to make sure it encodes and decodes to the same thing. Assert if not. More...
|
| |
| static void | unittest (compress_integer &compressor, uint32_t staring_from=0) |
| | Unit test this class, assert on failure. More...
|
| |
Pack 32-bit integers into 512-bit SIMD words using elias gamma with vbyte for short lists.
see: A. Trotman, K. Lilly (2018), Elias Revisited: Group Elias SIMD Coding, Proceedings of The 23rd Australasian Document Computing Symposium (ADCS 2018)