code: public static MutableRoaringBitmap andNot(final ImmutableRoaringBitmap x1,
        final ImmutableRoaringBitmap x2, long rangeStart, long rangeEnd) {
      MutableRoaringBitmap.rangeSanityCheck(rangeStart,rangeEnd);
      MutableRoaringBitmap rb1 = selectRangeWithoutCopy(x1, rangeStart, rangeEnd);
      MutableRoaringBitmap rb2 = selectRangeWithoutCopy(x2, rangeStart, rangeEnd);
      return andNot(rb1, rb2);
    }
docs: Bitwise ANDNOT (difference) operation for the given range, rangeStart (inclusive) and rangeEnd
  (exclusive). The provided bitmaps are *not* modified. This operation is thread-safe as long as
  the provided bitmaps remain unchanged.
  
  @param x1 first bitmap
  @param x2 other bitmap
  @param rangeStart beginning of the range (inclusive)
  @param rangeEnd end of range (exclusive)
  @return result of the operation