Class EliasFanoDecoder


  • public class EliasFanoDecoder
    extends java.lang.Object
    A decoder for an EliasFanoEncoder.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static long NO_MORE_VALUES  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean advanceToIndex​(long index)
      Advance the decoding index to a given index.
      long advanceToValue​(long target)
      Given a target value, advance the decoding index to the first bigger or equal value and return it if it is available.
      long backToValue​(long target)
      Given a target value, go back to the first smaller or equal value and return it if it is available.
      long currentIndex()
      The current decoding index.
      long currentValue()
      The value at the current decoding index.
      EliasFanoEncoder getEliasFanoEncoder()  
      long nextValue()
      If another value is available after the current decoding index, return this value and and increase the decoding index by 1.
      long numEncoded()
      The number of values encoded by the encoder.
      long previousValue()
      If another value is available before the current decoding index, return this value and decrease the decoding index by 1.
      void toAfterSequence()
      Set the decoding index to just after the last encoded value.
      void toBeforeSequence()
      Set the decoding index to just before the first encoded value.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EliasFanoDecoder

        public EliasFanoDecoder​(EliasFanoEncoder efEncoder)
        Construct a decoder for a given EliasFanoEncoder. The decoding index is set to just before the first encoded value.
    • Method Detail

      • getEliasFanoEncoder

        public EliasFanoEncoder getEliasFanoEncoder()
        Returns:
        The Elias-Fano encoder that is decoded.
      • numEncoded

        public long numEncoded()
        The number of values encoded by the encoder.
        Returns:
        The number of values encoded by the encoder.
      • currentValue

        public long currentValue()
        The value at the current decoding index. Only valid when currentIndex() would return a valid result.
        This is only intended for use after advanceToIndex(long) returned true.
        Returns:
        The value encoded at currentIndex().
      • toBeforeSequence

        public void toBeforeSequence()
        Set the decoding index to just before the first encoded value.
      • nextValue

        public long nextValue()
        If another value is available after the current decoding index, return this value and and increase the decoding index by 1. Otherwise return NO_MORE_VALUES.
      • advanceToIndex

        public boolean advanceToIndex​(long index)
        Advance the decoding index to a given index. and return true iff it is available.
        See also currentValue().
        The current implementation does not use the index on the upper bit zero bit positions.
        Note: there is currently no implementation of backToIndex.
      • advanceToValue

        public long advanceToValue​(long target)
        Given a target value, advance the decoding index to the first bigger or equal value and return it if it is available. Otherwise return NO_MORE_VALUES.
        The current implementation uses the index on the upper zero bit positions.
      • toAfterSequence

        public void toAfterSequence()
        Set the decoding index to just after the last encoded value.
      • previousValue

        public long previousValue()
        If another value is available before the current decoding index, return this value and decrease the decoding index by 1. Otherwise return NO_MORE_VALUES.
      • backToValue

        public long backToValue​(long target)
        Given a target value, go back to the first smaller or equal value and return it if it is available. Otherwise return NO_MORE_VALUES.
        The current implementation does not use the index on the upper zero bit positions.