Package me.lemire.integercompression
Class FastPFOR128
- java.lang.Object
-
- me.lemire.integercompression.FastPFOR128
-
- All Implemented Interfaces:
IntegerCODEC
,SkippableIntegerCODEC
public final class FastPFOR128 extends Object implements 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 Modifier and Type Field Description static int
BLOCK_SIZE
static int
DEFAULT_PAGE_SIZE
-
Constructor Summary
Constructors Constructor Description FastPFOR128()
Construct the fastPFOR CODEC with default parameters.FastPFOR128(int pagesize)
Construct the FastPFOR CODEC.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
compress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos)
Compress data from an array to another array.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).void
headlessUncompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos, int mynvalue)
Uncompress data in blocks of integers.String
toString()
void
uncompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos)
Uncompress data from an array to another array.
-
-
-
Field Detail
-
DEFAULT_PAGE_SIZE
public static final int DEFAULT_PAGE_SIZE
- See Also:
- Constant Field Values
-
BLOCK_SIZE
public static final int BLOCK_SIZE
- See Also:
- Constant Field Values
-
-
Method Detail
-
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:
headlessCompress
in 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:
IntegerCODEC.compress(int[], IntWrapper, int, int[], IntWrapper)
-
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:
headlessUncompress
in 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:
IntegerCODEC.compress(int[], IntWrapper, int, int[], IntWrapper)
-
compress
public void compress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos)
Description copied from interface:IntegerCODEC
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 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:
compress
in 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
public void uncompress(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos)
Description copied from interface:IntegerCODEC
Uncompress data from an array to another array. Both inpos and outpos parameters are modified to indicate new positions after read/write.- Specified by:
uncompress
in 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
-
-