1 package edu.berkeley.fleet.util;
2 import edu.berkeley.fleet.api.*;
3 import edu.berkeley.fleet.*;
6 /** A bit mask assigns 1, 0, or dont-care to each bit position */
9 public final BitVector ones;
10 public final BitVector zeroes;
12 public BitMask(BitVector ones, BitVector zeroes) {
13 if (ones.length() != zeroes.length())
14 throw new RuntimeException("attempt to invoke BitMask with different-size "+
15 "BitVectors: ones="+ones+", zeroes="+zeroes);
17 zeroes.setImmutable();
22 public BitVector apply(BitVector bv) {
23 return ones.or(bv).and(zeroes.not());
26 public boolean test(BitVector bv) {
27 throw new RuntimeException("not implemented");