Package com.ibm.wala.util.intset
Class OffsetBitVector
- java.lang.Object
-
- com.ibm.wala.util.intset.BitVectorBase<OffsetBitVector>
-
- com.ibm.wala.util.intset.OffsetBitVector
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public final class OffsetBitVector extends BitVectorBase<OffsetBitVector>
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class com.ibm.wala.util.intset.BitVectorBase
bits, BITS_PER_UNIT, DEBUG, LOG_BITS_PER_UNIT, LOW_MASK, MASK
-
-
Constructor Summary
Constructors Constructor Description OffsetBitVector()
OffsetBitVector(int offset, int nbits)
Creates an empty string with the specified size.OffsetBitVector(OffsetBitVector s)
Creates a copy of a Bit String
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
and(OffsetBitVector set)
Logically ANDs this bit set with the specified set of bits.static OffsetBitVector
and(OffsetBitVector b1, OffsetBitVector b2)
Return a new bit string as the AND of two others.void
andNot(OffsetBitVector set)
static OffsetBitVector
andNot(OffsetBitVector b1, OffsetBitVector b2)
Return a new bit string as the AND of two others.void
clear(int bit)
Clears a bit.void
copyBits(OffsetBitVector set)
Copies the values of the bits in the specified set into this set.boolean
equals(java.lang.Object obj)
Compares this object against the specified object.boolean
get(int bit)
Gets a bit.int
getOffset()
boolean
intersectionEmpty(OffsetBitVector set)
Check if the intersection of the two sets is emptyboolean
isSubset(OffsetBitVector other)
int
length()
Calculates and returns the set's size in bits.int
max()
int
nextSetBit(int start)
void
not()
Logically NOT this bit stringstatic OffsetBitVector
not(OffsetBitVector s)
Return the NOT of a bit stringvoid
or(OffsetBitVector set)
Logically ORs this bit set with the specified set of bits.static OffsetBitVector
or(OffsetBitVector b1, OffsetBitVector b2)
Return a new FixedSizeBitVector as the OR of two othersboolean
sameBits(OffsetBitVector set)
Compares this object against the specified object.void
set(int bit)
Sets a bit.void
setAll()
Sets all bits.java.lang.String
toString()
void
xor(OffsetBitVector set)
Logically XORs this bit set with the specified set of bits.-
Methods inherited from class com.ibm.wala.util.intset.BitVectorBase
clearAll, clone, contains, copyBits, hashCode, isZero, populationCount, subscript
-
-
-
-
Constructor Detail
-
OffsetBitVector
public OffsetBitVector()
-
OffsetBitVector
public OffsetBitVector(int offset, int nbits)
Creates an empty string with the specified size.- Parameters:
nbits
- the size of the string
-
OffsetBitVector
public OffsetBitVector(OffsetBitVector s)
Creates a copy of a Bit String- Parameters:
s
- the string to copy- Throws:
java.lang.IllegalArgumentException
- if s is null
-
-
Method Detail
-
toString
public java.lang.String toString()
- Overrides:
toString
in classBitVectorBase<OffsetBitVector>
-
getOffset
public int getOffset()
-
set
public final void set(int bit)
Sets a bit.- Specified by:
set
in classBitVectorBase<OffsetBitVector>
- Parameters:
bit
- the bit to be set
-
clear
public final void clear(int bit)
Clears a bit.- Specified by:
clear
in classBitVectorBase<OffsetBitVector>
- Parameters:
bit
- the bit to be cleared
-
get
public final boolean get(int bit)
Gets a bit.- Specified by:
get
in classBitVectorBase<OffsetBitVector>
- Parameters:
bit
- the bit to be gotten
-
nextSetBit
public int nextSetBit(int start)
- Overrides:
nextSetBit
in classBitVectorBase<OffsetBitVector>
- Returns:
- min j >= start s.t get(j)
-
not
public final void not()
Logically NOT this bit string
-
max
public int max()
- Overrides:
max
in classBitVectorBase<OffsetBitVector>
-
length
public final int length()
Calculates and returns the set's size in bits. The maximum element in the set is the size - 1st element.- Specified by:
length
in classBitVectorBase<OffsetBitVector>
-
setAll
public final void setAll()
Sets all bits.
-
equals
public boolean equals(java.lang.Object obj)
Compares this object against the specified object.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the object to compare with- Returns:
- true if the objects are the same; false otherwise.
-
intersectionEmpty
public final boolean intersectionEmpty(OffsetBitVector set) throws java.lang.IllegalArgumentException
Check if the intersection of the two sets is empty- Specified by:
intersectionEmpty
in classBitVectorBase<OffsetBitVector>
- Parameters:
set
- the set to check intersection with- Throws:
java.lang.IllegalArgumentException
- if set == null
-
sameBits
public final boolean sameBits(OffsetBitVector set) throws java.lang.IllegalArgumentException
Compares this object against the specified object.- Specified by:
sameBits
in classBitVectorBase<OffsetBitVector>
- Parameters:
set
- the object to compare with- Returns:
- true if the objects are the same; false otherwise.
- Throws:
java.lang.IllegalArgumentException
- if set == null
-
isSubset
public boolean isSubset(OffsetBitVector other) throws java.lang.IllegalArgumentException
- Specified by:
isSubset
in classBitVectorBase<OffsetBitVector>
- Throws:
java.lang.IllegalArgumentException
-
copyBits
public final void copyBits(OffsetBitVector set)
Copies the values of the bits in the specified set into this set.- Parameters:
set
- the bit set to copy the bits from- Throws:
java.lang.IllegalArgumentException
- if set is null
-
and
public final void and(OffsetBitVector set) throws java.lang.IllegalArgumentException
Logically ANDs this bit set with the specified set of bits.- Specified by:
and
in classBitVectorBase<OffsetBitVector>
- Parameters:
set
- the bit set to be ANDed with- Throws:
java.lang.IllegalArgumentException
- if set == null
-
or
public final void or(OffsetBitVector set) throws java.lang.IllegalArgumentException
Logically ORs this bit set with the specified set of bits.- Specified by:
or
in classBitVectorBase<OffsetBitVector>
- Parameters:
set
- the bit set to be ORed with- Throws:
java.lang.IllegalArgumentException
- if set == null
-
xor
public final void xor(OffsetBitVector set) throws java.lang.IllegalArgumentException
Logically XORs this bit set with the specified set of bits.- Specified by:
xor
in classBitVectorBase<OffsetBitVector>
- Parameters:
set
- the bit set to be XORed with- Throws:
java.lang.IllegalArgumentException
- if set == null
-
andNot
public void andNot(OffsetBitVector set) throws java.lang.IllegalArgumentException
- Specified by:
andNot
in classBitVectorBase<OffsetBitVector>
- Throws:
java.lang.IllegalArgumentException
-
not
public static OffsetBitVector not(OffsetBitVector s)
Return the NOT of a bit string
-
and
public static OffsetBitVector and(OffsetBitVector b1, OffsetBitVector b2) throws java.lang.IllegalArgumentException
Return a new bit string as the AND of two others.- Throws:
java.lang.IllegalArgumentException
- if b2 == null
-
or
public static OffsetBitVector or(OffsetBitVector b1, OffsetBitVector b2) throws java.lang.IllegalArgumentException
Return a new FixedSizeBitVector as the OR of two others- Throws:
java.lang.IllegalArgumentException
- if b2 == null
-
andNot
public static OffsetBitVector andNot(OffsetBitVector b1, OffsetBitVector b2)
Return a new bit string as the AND of two others.
-
-