Class BitUtil

java.lang.Object
org.apache.lucene.util.BitUtil

public final class BitUtil extends Object
A variety of high efficiency bit twiddling routines.
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    bitCount(byte b)
    Return the number of bits sets in b.
    static int
    bitList(byte b)
    Return the list of bits which are set in b encoded as followed: (i >>> (4 * n)) & 0x0F is the offset of the n-th set bit of the given byte plus one, or 0 if there are n or less bits set in the given byte.
    static int
    returns the next highest power of two, or the current value if it's already a power of two or zero
    static long
    returns the next highest power of two, or the current value if it's already a power of two or zero
    static long
    pop_andnot(long[] arr1, long[] arr2, int wordOffset, int numWords)
    Returns the popcount or cardinality of A & ~B.
    static long
    pop_array(long[] arr, int wordOffset, int numWords)
    Returns the number of set bits in an array of longs.
    static long
    pop_intersect(long[] arr1, long[] arr2, int wordOffset, int numWords)
    Returns the popcount or cardinality of the two sets after an intersection.
    static long
    pop_union(long[] arr1, long[] arr2, int wordOffset, int numWords)
    Returns the popcount or cardinality of the union of two sets.
    static long
    pop_xor(long[] arr1, long[] arr2, int wordOffset, int numWords)
    Returns the popcount or cardinality of A ^ B Neither array is modified.

    Methods inherited from class java.lang.Object

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

    • bitCount

      public static int bitCount(byte b)
      Return the number of bits sets in b.
    • bitList

      public static int bitList(byte b)
      Return the list of bits which are set in b encoded as followed: (i >>> (4 * n)) & 0x0F is the offset of the n-th set bit of the given byte plus one, or 0 if there are n or less bits set in the given byte. For example bitList(12) returns 0x43:
      • 0x43 & 0x0F is 3, meaning the the first bit set is at offset 3-1 = 2,
      • (0x43 >>> 4) & 0x0F is 4, meaning there is a second bit set at offset 4-1=3,
      • (0x43 >>> 8) & 0x0F is 0, meaning there is no more bit set in this byte.
    • pop_array

      public static long pop_array(long[] arr, int wordOffset, int numWords)
      Returns the number of set bits in an array of longs.
    • pop_intersect

      public static long pop_intersect(long[] arr1, long[] arr2, int wordOffset, int numWords)
      Returns the popcount or cardinality of the two sets after an intersection. Neither array is modified.
    • pop_union

      public static long pop_union(long[] arr1, long[] arr2, int wordOffset, int numWords)
      Returns the popcount or cardinality of the union of two sets. Neither array is modified.
    • pop_andnot

      public static long pop_andnot(long[] arr1, long[] arr2, int wordOffset, int numWords)
      Returns the popcount or cardinality of A & ~B. Neither array is modified.
    • pop_xor

      public static long pop_xor(long[] arr1, long[] arr2, int wordOffset, int numWords)
      Returns the popcount or cardinality of A ^ B Neither array is modified.
    • nextHighestPowerOfTwo

      public static int nextHighestPowerOfTwo(int v)
      returns the next highest power of two, or the current value if it's already a power of two or zero
    • nextHighestPowerOfTwo

      public static long nextHighestPowerOfTwo(long v)
      returns the next highest power of two, or the current value if it's already a power of two or zero