public BitVector getBitVector() {
return this;
}
+
+ public BitVector and(BitVector bv) {
+ if (bv.length() != this.length())
+ throw new RuntimeException("attempt to invoke BitVector.and() on BitVectors "+
+ "of mismatched size: this="+this+", bv="+bv);
+ BitVector ret = new BitVector(length());
+ for(int i=0; i<length(); i++)
+ ret.set(i, get(i) && bv.get(i));
+ return ret;
+ }
+
+ public BitVector or(BitVector bv) {
+ if (bv.length() != this.length())
+ throw new RuntimeException("attempt to invoke BitVector.or() on BitVectors "+
+ "of mismatched size: this="+this+", bv="+bv);
+ BitVector ret = new BitVector(length());
+ for(int i=0; i<length(); i++)
+ ret.set(i, get(i) || bv.get(i));
+ return ret;
+ }
+
+ public BitVector not() {
+ BitVector ret = new BitVector(length());
+ for(int i=0; i<length(); i++)
+ ret.set(i, !get(i));
+ return ret;
+ }
}