Package org.apache.lucene.util
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
All Methods Static Methods Concrete Methods 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
nextHighestPowerOfTwo(int v)
returns the next highest power of two, or the current value if it's already a power of two or zerostatic long
nextHighestPowerOfTwo(long v)
returns the next highest power of two, or the current value if it's already a power of two or zerostatic 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.
-
-
-
Method Detail
-
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 examplebitList(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
-
-