Class 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.
    • Constructor Detail

      • 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 Detail

      • 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 interface SkippableIntegerCODEC
        Parameters:
        in - array containing data in compressed form
        inpos - where to start reading in the array
        inlength - length of the compressed data (ignored by some schemes)
        out - array where to write the compressed output
        outpos - where to write the compressed output in out
        mynvalue - 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 interface IntegerCODEC
        Parameters:
        in - input array
        inpos - location in the input array
        inlength - how many integers to compress
        out - output array
        outpos - 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 interface IntegerCODEC
        Parameters:
        in - array containing data in compressed form
        inpos - where to start reading in the array
        inlength - length of the compressed data (ignored by some schemes)
        out - array where to write the compressed output
        outpos - where to write the compressed output in out