Package me.lemire.longcompression
Interface SkippableLongCODEC
- All Known Implementing Classes:
LongBinaryPacking,LongJustCopy,LongVariableByte,SkippableLongComposition
public interface SkippableLongCODEC
Interface describing a standard CODEC to compress longs. This is a
variation on the LongCODEC interface meant to be used for random access
(i.e., given a large array, you can segment it and decode just the subarray you need).
The main difference is that we must specify the number of longs we wish to
decode. This information should be stored elsewhere.
This interface was designed by the Terrier team for their search engine.
- Author:
- Benoit Lacelle
-
Method Summary
Modifier and TypeMethodDescriptionvoidheadlessCompress(long[] in, IntWrapper inpos, int inlength, long[] out, IntWrapper outpos) Compress data from an array to another array.voidheadlessUncompress(long[] in, IntWrapper inpos, int inlength, long[] out, IntWrapper outpos, int num) Uncompress data from an array to another array.
-
Method Details
-
headlessCompress
Compress data from an array to another array. Both inpos and outpos are modified to represent how much data was read and written to. If 12 longs (inlength = 12) are compressed to 3 longs, then inpos will be incremented by 12 while outpos will be incremented by 3. We use IntWrapper to pass the values by reference.- Parameters:
in- input arrayinpos- where to start reading in the arrayinlength- how many longs to compressout- output arrayoutpos- where to write in the output array
-
headlessUncompress
void headlessUncompress(long[] in, IntWrapper inpos, int inlength, long[] out, IntWrapper outpos, int num) Uncompress data from an array to another array. Both inpos and outpos parameters are modified to indicate new positions after read/write.- Parameters:
in- array containing data in compressed forminpos- where to start reading in the arrayinlength- length of the compressed data (ignored by some schemes)out- array where to write the uncompressed outputoutpos- where to start writing the uncompressed output in outnum- number of longs we want to decode, the actual number of longs decoded can be less
-