Class Rank16

All Implemented Interfaces:
Rank, Serializable

public class Rank16
extends AbstractRank
implements Rank
A rank16 implementation.

rank16 is a ranking structure using just 18.75% additional space and providing fast ranking. It is the natural ranking structure for 128-bit processors.

See Also:
Serialized Form
  • Field Details

    • bits

      protected transient long[] bits
    • superCount

      protected final long[] superCount
    • count

      protected final short[] count
    • numWords

      protected final int numWords
    • numOnes

      protected final long numOnes
    • lastOne

      protected final long lastOne
    • bitVector

      protected final BitVector bitVector
  • Constructor Details

    • Rank16

      public Rank16​(long[] bits, long length)
    • Rank16

      public Rank16​(BitVector bitVector)
  • Method Details

    • rank

      public long rank​(long pos)
      Description copied from interface: Rank
      Returns the number of ones preceding the specified position.
      Specified by:
      rank in interface Rank
      Parameters:
      pos - a position in the bit vector between 0 (inclusive) and the length of the bit vector (inclusive).
      Returns:
      the number of ones preceding position pos; if pos is out of bounds, behavior is undefined.
    • numBits

      public long numBits()
      Description copied from interface: Rank
      Returns the overall number of bits allocated by this structure.
      Specified by:
      numBits in interface Rank
      Returns:
      the overall number of bits allocated by this structure (not including the bits of the indexed vector).
    • count

      public long count()
      Description copied from interface: Rank
      Returns the number of ones in the bit vector indexed by this class.
      Specified by:
      count in interface Rank
      Overrides:
      count in class AbstractRank
      Returns:
      number of ones in the bit vector indexed by this class.
    • rank

      public long rank​(long from, long to)
      Description copied from interface: Rank
      Returns the number of ones in the specified interval.
      Specified by:
      rank in interface Rank
      Overrides:
      rank in class AbstractRank
      Parameters:
      from - a position in the bit vector between 0 (inclusive) and the length of the bit vector (inclusive).
      to - a position in the bit vector between 0 (inclusive) and the length of the bit vector (inclusive); must be greater than or equal to from.
      Returns:
      the number of ones between from (inclusive) and to (exclusive); if the parameters are out of bounds, behavior is undefined.
    • lastOne

      public long lastOne()
    • bitVector

      public BitVector bitVector()
      Description copied from interface: Rank
      Returns the bit vector indexed by this structure.

      Note that you must not modify the returned vector.

      Specified by:
      bitVector in interface Rank
      Returns:
      the bit vector indexed by this structure.