Class EliasFanoDecoder

java.lang.Object
org.apache.lucene.util.packed.EliasFanoDecoder

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

    Fields
    Modifier and Type
    Field
    Description
    static final long
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Construct a decoder for a given EliasFanoEncoder.
  • Method Summary

    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
    The current decoding index.
    long
    The value at the current decoding index.
     
    long
    If another value is available after the current decoding index, return this value and and increase the decoding index by 1.
    long
    The number of values encoded by the encoder.
    long
    If another value is available before the current decoding index, return this value and decrease the decoding index by 1.
    void
    Set the decoding index to just after the last encoded value.
    void
    Set the decoding index to just before the first encoded value.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

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

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

      public long currentIndex()
      The current decoding index. The first value encoded by EliasFanoEncoder.encodeNext(long) has index 0. Only valid directly after nextValue(), advanceToValue(long), previousValue(), or backToValue(long) returned another value than NO_MORE_VALUES, or advanceToIndex(long) returned true.
      Returns:
      The decoding index of the last decoded value, or as last set by advanceToIndex(long).
    • 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.