soot.util
Class BitVector

java.lang.Object
  extended by soot.util.BitVector
Direct Known Subclasses:
PointsToBitVector

public class BitVector
extends Object

This is the Soot internal implementation of java.util.BitSet with Felix and Jerome's clever efficient iterator. It was re-implemented from scratch by Ondrej Lhotak to avoid licence issues. It was named BitVector rather than BitSet to avoid a name clash with the one in the standard Java library.

Author:
Ondrej Lhotak

Constructor Summary
BitVector()
           
BitVector(BitVector other)
          Copy constructor
BitVector(int numBits)
           
 
Method Summary
 void and(BitVector other)
           
static BitVector and(BitVector set1, BitVector set2)
           
 void andNot(BitVector other)
           
 int cardinality()
          Count the number of ones in the bitvector.
 void clear(int bit)
           
 Object clone()
           
 void copyFrom(BitVector other)
           
 boolean equals(Object o)
           
 boolean get(int bit)
           
 int hashCode()
           
 BitSetIterator iterator()
           
 int length()
          Returns index of highest-numbered one bit.
 void or(BitVector other)
           
static BitVector or(BitVector set1, BitVector set2)
           
 boolean orAndAndNot(BitVector orset, BitVector andset, BitVector andnotset)
          Computes this = this OR ((orset AND andset ) AND (NOT andnotset)) Returns true iff this is modified.
 boolean set(int bit)
           
 int size()
          Returns number of bits in the underlying array.
 String toString()
           
 void xor(BitVector other)
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BitVector

public BitVector()

BitVector

public BitVector(BitVector other)
Copy constructor


BitVector

public BitVector(int numBits)
Method Detail

and

public void and(BitVector other)

andNot

public void andNot(BitVector other)

clear

public void clear(int bit)

clone

public Object clone()
Overrides:
clone in class Object

equals

public boolean equals(Object o)
Overrides:
equals in class Object

get

public boolean get(int bit)

hashCode

public int hashCode()
Overrides:
hashCode in class Object

length

public int length()
Returns index of highest-numbered one bit.


copyFrom

public void copyFrom(BitVector other)

or

public void or(BitVector other)

cardinality

public int cardinality()
Count the number of ones in the bitvector.


xor

public void xor(BitVector other)

set

public boolean set(int bit)

size

public int size()
Returns number of bits in the underlying array.


toString

public String toString()
Overrides:
toString in class Object

orAndAndNot

public boolean orAndAndNot(BitVector orset,
                           BitVector andset,
                           BitVector andnotset)
Computes this = this OR ((orset AND andset ) AND (NOT andnotset)) Returns true iff this is modified.

Parameters:
set - a bit set.

and

public static BitVector and(BitVector set1,
                            BitVector set2)

or

public static BitVector or(BitVector set1,
                           BitVector set2)

iterator

public BitSetIterator iterator()