public class

BitUtil

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

Class Overview

A variety of high efficiency bit twiddling routines.

Summary

Fields
public static final byte[] ntzTable table of number of trailing zeros in a byte
Public Constructors
BitUtil()
Public Methods
static boolean isPowerOfTwo(int v)
returns true if v is a power of two or zero
static boolean isPowerOfTwo(long v)
returns true if v is a power of two or zero
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
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
static int ntz(long val)
Returns number of trailing zeros in a 64 bit long value.
static int ntz(int val)
Returns number of trailing zeros in a 32 bit int value.
static int ntz2(long x)
returns 0 based index of first set bit (only works for x!=0)
This is an alternate implementation of ntz()
static int ntz3(long x)
returns 0 based index of first set bit
This is an alternate implementation of ntz()
static int pop(long x)
Returns the number of bits set in the long
static long pop_andnot(long[] A, long[] B, int wordOffset, int numWords)
Returns the popcount or cardinality of A & ~B Neither array is modified.
static long pop_array(long[] A, int wordOffset, int numWords)
Returns the number of set bits in an array of longs.
static long pop_intersect(long[] A, long[] B, int wordOffset, int numWords)
Returns the popcount or cardinality of the two sets after an intersection.
static long pop_union(long[] A, long[] B, int wordOffset, int numWords)
Returns the popcount or cardinality of the union of two sets.
static long pop_xor(long[] A, long[] B, int wordOffset, int numWords)
[Expand]
Inherited Methods
From class java.lang.Object

Fields

public static final byte[] ntzTable

table of number of trailing zeros in a byte

Public Constructors

public BitUtil ()

Public Methods

public static boolean isPowerOfTwo (int v)

returns true if v is a power of two or zero

public static boolean isPowerOfTwo (long v)

returns true if v is a power of two or zero

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

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

public static int ntz (long val)

Returns number of trailing zeros in a 64 bit long value.

public static int ntz (int val)

Returns number of trailing zeros in a 32 bit int value.

public static int ntz2 (long x)

returns 0 based index of first set bit (only works for x!=0)
This is an alternate implementation of ntz()

public static int ntz3 (long x)

returns 0 based index of first set bit
This is an alternate implementation of ntz()

public static int pop (long x)

Returns the number of bits set in the long

public static long pop_andnot (long[] A, long[] B, int wordOffset, int numWords)

Returns the popcount or cardinality of A & ~B Neither array is modified.

public static long pop_array (long[] A, int wordOffset, int numWords)

Returns the number of set bits in an array of longs.

public static long pop_intersect (long[] A, long[] B, int wordOffset, int numWords)

Returns the popcount or cardinality of the two sets after an intersection. Neither array is modified.

public static long pop_union (long[] A, long[] B, int wordOffset, int numWords)

Returns the popcount or cardinality of the union of two sets. Neither array is modified.

public static long pop_xor (long[] A, long[] B, int wordOffset, int numWords)