Package me.lemire.integercompression
Class Composition
java.lang.Object
me.lemire.integercompression.Composition
-
Constructor Summary
ConstructorsConstructorDescriptionComposition
(IntegerCODEC f1, IntegerCODEC f2) Compose a scheme from a first one (f1) and a second one (f2). -
Method Summary
Modifier and TypeMethodDescriptionvoid
compress
(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos) Compress data from an array to another array.toString()
void
uncompress
(int[] in, IntWrapper inpos, int inlength, int[] out, IntWrapper outpos) Uncompress data from an array to another array.
-
Constructor Details
-
Composition
Compose a scheme from a first one (f1) and a second one (f2). The first one is called first and then the second one tries to compress whatever remains from the first run. By convention, the first scheme should be such that if, during decoding, a 32-bit zero is first encountered, then there is no output.- Parameters:
f1
- first codecf2
- second codec
-
-
Method Details
-
compress
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
- where to start reading in the arrayinlength
- how many integers to compressout
- output arrayoutpos
- where to write in the output array
-
uncompress
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 start writing the uncompressed output in out
-
toString
-