Package me.lemire.integercompression
Class FastPFOR128
java.lang.Object
me.lemire.integercompression.FastPFOR128
- All Implemented Interfaces:
IntegerCODEC,SkippableIntegerCODEC
This class is similar to FastPFOR but uses a small block size.
Note that this does not use differential coding: if you are working on sorted
lists, use IntegratedFastPFOR instead.
For multi-threaded applications, each thread should use its own FastPFOR
object.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstruct the fastPFOR CODEC with default parameters.FastPFOR128(int pagesize) Construct the FastPFOR CODEC. -
Method Summary
Modifier and TypeMethodDescriptionvoidcompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos) Compress data from an array to another array.voidheadlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos) Compress data in blocks of BLOCK_SIZE integers (if fewer than BLOCK_SIZE integers are provided, nothing is done).voidheadlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos, int mynvalue) Uncompress data in blocks of integers.toString()voiduncompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos) Uncompress data from an array to another array.
-
Field Details
-
DEFAULT_PAGE_SIZE
public static final int DEFAULT_PAGE_SIZE- See Also:
-
BLOCK_SIZE
public static final int BLOCK_SIZE- See Also:
-
-
Constructor Details
-
FastPFOR128
public FastPFOR128(int pagesize) Construct the FastPFOR CODEC.- Parameters:
pagesize- the desired page size (recommended value is FastPFOR.DEFAULT_PAGE_SIZE)
-
FastPFOR128
public FastPFOR128()Construct the fastPFOR CODEC with default parameters.
-
-
Method Details
-
headlessCompress
public void headlessCompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos) Compress data in blocks of BLOCK_SIZE integers (if fewer than BLOCK_SIZE integers are provided, nothing is done).- Specified by:
headlessCompressin interfaceSkippableIntegerCODEC- Parameters:
in- input arrayinpos- location in the input arrayinlength- how many integers to compressout- output arrayoutpos- where to write in the output array- See Also:
-
headlessUncompress
public void headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos, int mynvalue) Uncompress data in blocks of integers. In this particular case, the inlength parameter is ignored: it is deduced from the compressed data.- Specified by:
headlessUncompressin interfaceSkippableIntegerCODEC- 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 compressed outputoutpos- where to write the compressed output in outmynvalue- number of integers we want to decode, the actual number of integers decoded can be less- See Also:
-
compress
Description copied from interface:IntegerCODECCompress 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 ints (inlength = 12) are compressed to 3 ints, then inpos will be incremented by 12 while outpos will be incremented by 3 we use IntWrapper to pass the values by reference.- Specified by:
compressin interfaceIntegerCODEC- Parameters:
in- input arrayinpos- location in the input arrayinlength- how many integers to compressout- output arrayoutpos- where to write in the output array
-
uncompress
Description copied from interface:IntegerCODECUncompress data from an array to another array. Both inpos and outpos parameters are modified to indicate new positions after read/write.- Specified by:
uncompressin interfaceIntegerCODEC- 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 compressed outputoutpos- where to write the compressed output in out
-
toString
-