@Override
    BitString getBitwiseMask() {
      int knownBits = Long.numberOfTrailingZeros(myMod);
      int powerOfTwo = 1 << knownBits;
      long result = -1;
      long mask = powerOfTwo - 1;
      for (int rem = 0; rem < myMod; rem++) {
        if (isSet(myBits, rem)) {
          int setBits = rem % powerOfTwo;
          if (result != -1) {
            long diffBits = result ^ setBits;
            mask &= ~diffBits;
          }
          result = setBits;
        }
      }
      BitString intersection = new BitString(result, mask).intersect(super.getBitwiseMask());
      assert intersection != null;
      return intersection;
    }
@Override
    BitString getBitwiseMask()