Class LongJustCopy

java.lang.Object
me.lemire.longcompression.LongJustCopy
All Implemented Interfaces:
LongCODEC, SkippableLongCODEC

public final class LongJustCopy extends Object implements LongCODEC, SkippableLongCODEC
Author:
Benoit lacelle
  • Constructor Details

    • LongJustCopy

      public LongJustCopy()
  • Method Details

    • headlessCompress

      public void headlessCompress(long[] in, IntWrapper inpos, int inlength, long[] out, IntWrapper outpos)
      Description copied from interface: SkippableLongCODEC
      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.
      Specified by:
      headlessCompress in interface SkippableLongCODEC
      Parameters:
      in - input array
      inpos - where to start reading in the array
      inlength - how many longs to compress
      out - output array
      outpos - where to write in the output array
    • uncompress

      public void uncompress(long[] in, IntWrapper inpos, int inlength, long[] out, IntWrapper outpos)
      Description copied from interface: LongCODEC
      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 LongCODEC
      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 uncompressed output
      outpos - where to start writing the uncompressed output in out
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • headlessUncompress

      public void headlessUncompress(long[] in, IntWrapper inpos, int inlength, long[] out, IntWrapper outpos, int num)
      Description copied from interface: SkippableLongCODEC
      Uncompress data from an array to another array. Both inpos and outpos parameters are modified to indicate new positions after read/write.
      Specified by:
      headlessUncompress in interface SkippableLongCODEC
      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 uncompressed output
      outpos - where to start writing the uncompressed output in out
      num - number of longs we want to decode, the actual number of longs decoded can be less
    • maxHeadlessCompressedLength

      public int maxHeadlessCompressedLength(IntWrapper compressedPositions, int inlength)
      Description copied from interface: SkippableLongCODEC
      Compute the maximum number of longs that might be required to store the compressed form of a given input array segment, without headers.

      This is useful to pre-allocate the output buffer before calling SkippableLongCODEC.headlessCompress(long[], IntWrapper, int, long[], IntWrapper).

      Specified by:
      maxHeadlessCompressedLength in interface SkippableLongCODEC
      Parameters:
      compressedPositions - since not all schemes compress every input integer, this parameter returns how many input integers will actually be compressed. This is useful when composing multiple schemes.
      inlength - number of longs to be compressed
      Returns:
      the maximum number of longs needed in the output array
    • compress

      public void compress(long[] in, IntWrapper inpos, int inlength, long[] out, IntWrapper outpos)
      Description copied from interface: LongCODEC
      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.
      Specified by:
      compress in interface LongCODEC
      Parameters:
      in - input array
      inpos - where to start reading in the array
      inlength - how many longs to compress
      out - output array
      outpos - where to write in the output array