Class EliasFanoDecoder

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