class SharedBitSetCache {
  public SharedBitSetCache(Singletons.Global g) {
  }

  public static SharedBitSetCache v() {
    return G.v().soot_util_SharedBitSetCache();
  }

  public static final int size = 32749; // a nice prime about 32k

  public BitVector[] cache = new BitVector[size];
  public BitVector[] orAndAndNotCache = new BitVector[size];

  public BitVector canonicalize(BitVector set) {<FILL_FUNCTION_BODY>}
}

    int hash = set.hashCode();
    if (hash < 0) {
      hash = -hash;
    }
    hash %= size;
    BitVector hashed = cache[hash];
    if (hashed != null && hashed.equals(set)) {
      return hashed;
    } else {
      cache[hash] = set;
      return set;
    }
  
<no_super_class>