Package com.prineside.tdi2.utils
Class BitVector
java.lang.Object
com.prineside.tdi2.utils.BitVector
- All Implemented Interfaces:
com.esotericsoftware.kryo.KryoSerializable
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Performs a logical AND of this target bit set with the argument bit set.void
Clears all of the bits in this bit set whose corresponding bit is set in the specified bit set.int
void
clear()
Clears the entire bitsetvoid
clear
(int index) boolean
containsAll
(BitVector other) Returns true if this bit set is a super set of the specified set, i.e.void
ensureCapacity
(int bits) Grows the backing array (long[]
) so that it can hold the requested bits.boolean
boolean
exactlyTheSame
(BitVector vector) void
flip
(int index) boolean
get
(int index) int
int
hashCode()
boolean
intersects
(BitVector other) Returns true if the specified BitVector has any bits set to true that are also set to true in this BitVector.boolean
isEmpty()
int
length()
Returns the "logical size" of this bitset: the index of the highest set bit in the bitset plus one.int
nextClearBit
(int fromIndex) Returns the index of the first bit that is set to false that occurs on or after the specified starting index.int
nextSetBit
(int fromIndex) Returns the index of the first bit that is set to true that occurs on or after the specified starting index.void
Performs a logical OR of this bit set with the bit set argument.void
read
(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) void
set
(int index) void
set
(int index, boolean value) toString()
void
unsafeClear
(int index) boolean
unsafeGet
(int index) void
unsafeSet
(int index) void
unsafeSet
(int index, boolean value) void
write
(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) void
Performs a logical XOR of this bit set with the bit set argument.
-
Field Details
-
words
public long[] words
-
-
Constructor Details
-
BitVector
public BitVector() -
BitVector
public BitVector(int nbits) Creates a bit set whose initial size is large enough to explicitly represent bits with indices in the range 0 through nbits-1.- Parameters:
nbits
- the initial size of the bit set
-
BitVector
Creates a bit set based off another bit vector.- Parameters:
copyFrom
-
-
-
Method Details
-
write
public void write(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output) - Specified by:
write
in interfacecom.esotericsoftware.kryo.KryoSerializable
-
read
public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input) - Specified by:
read
in interfacecom.esotericsoftware.kryo.KryoSerializable
-
get
public boolean get(int index) - Parameters:
index
- the index of the bit- Returns:
- whether the bit is set
- Throws:
ArrayIndexOutOfBoundsException
- if index < 0
-
getCapacity
public int getCapacity() -
set
public void set(int index) - Parameters:
index
- the index of the bit to set- Throws:
ArrayIndexOutOfBoundsException
- if index < 0
-
set
public void set(int index, boolean value) - Parameters:
index
- the index of the bit to set- Throws:
ArrayIndexOutOfBoundsException
- if index < 0
-
unsafeGet
public boolean unsafeGet(int index) - Parameters:
index
- the index of the bit- Returns:
- whether the bit is set
- Throws:
ArrayIndexOutOfBoundsException
- if index < 0 or index >= words.length</></>
-
unsafeSet
public void unsafeSet(int index) - Parameters:
index
- the index of the bit to set- Throws:
ArrayIndexOutOfBoundsException
- if index < 0 or index >= words.length
-
unsafeSet
public void unsafeSet(int index, boolean value) - Parameters:
index
- the index of the bit to set- Throws:
ArrayIndexOutOfBoundsException
- if index < 0 or index >= words.length
-
flip
public void flip(int index) - Parameters:
index
- the index of the bit to flip
-
ensureCapacity
public void ensureCapacity(int bits) Grows the backing array (long[]
) so that it can hold the requested bits. Mostly applicable when relying on theunsafe
methods, includingunsafeGet(int)
andunsafeClear(int)
.- Parameters:
bits
- number of bits to accomodate
-
clear
public void clear(int index) - Parameters:
index
- the index of the bit to clear- Throws:
ArrayIndexOutOfBoundsException
- if index < 0
-
unsafeClear
public void unsafeClear(int index) - Parameters:
index
- the index of the bit to clear- Throws:
ArrayIndexOutOfBoundsException
- if index < 0 or index >= words.length
-
clear
public void clear()Clears the entire bitset -
length
public int length()Returns the "logical size" of this bitset: the index of the highest set bit in the bitset plus one. Returns zero if the bitset contains no set bits.- Returns:
- the logical size of this bitset
-
isEmpty
public boolean isEmpty()- Returns:
- true if this bitset contains no bits that are set to true
-
nextSetBit
public int nextSetBit(int fromIndex) Returns the index of the first bit that is set to true that occurs on or after the specified starting index. If no such bit exists then -1 is returned. -
nextClearBit
public int nextClearBit(int fromIndex) Returns the index of the first bit that is set to false that occurs on or after the specified starting index. -
and
Performs a logical AND of this target bit set with the argument bit set. This bit set is modified so that each bit in it has the value true if and only if it both initially had the value true and the corresponding bit in the bit set argument also had the value true.- Parameters:
other
- a bit set
-
andNot
Clears all of the bits in this bit set whose corresponding bit is set in the specified bit set.- Parameters:
other
- a bit set
-
or
Performs a logical OR of this bit set with the bit set argument. This bit set is modified so that a bit in it has the value true if and only if it either already had the value true or the corresponding bit in the bit set argument has the value true.- Parameters:
other
- a bit set
-
xor
Performs a logical XOR of this bit set with the bit set argument. This bit set is modified so that a bit in it has the value true if and only if one of the following statements holds:- The bit initially has the value true, and the corresponding bit in the argument has the value false.
- The bit initially has the value false, and the corresponding bit in the argument has the value true.
- Parameters:
other
-
-
intersects
Returns true if the specified BitVector has any bits set to true that are also set to true in this BitVector.- Parameters:
other
- a bit set- Returns:
- boolean indicating whether this bit set intersects the specified bit set
-
containsAll
Returns true if this bit set is a super set of the specified set, i.e. it has all bits set to true that are also set to true in the specified BitVector.- Parameters:
other
- a bit set- Returns:
- boolean indicating whether this bit set is a super set of the specified set
-
cardinality
public int cardinality() -
hashCode
public int hashCode() -
equals
-
exactlyTheSame
-
toString
-