public bool Equals(RoaringBitmap bitmap)
 {
     if (bitmap == null)
     {
         return(false);
     }
     return(NativeMethods.roaring_bitmap_equals(_pointer, bitmap._pointer));
 }
 public bool IsSubset(RoaringBitmap bitmap, bool isStrict = false)
 {
     if (bitmap == null)
     {
         return(false);
     }
     if (isStrict)
     {
         return(NativeMethods.roaring_bitmap_is_strict_subset(_pointer, bitmap._pointer));
     }
     else
     {
         return(NativeMethods.roaring_bitmap_is_subset(_pointer, bitmap._pointer));
     }
 }
 public double GetJaccardIndex(RoaringBitmap bitmap)
 => NativeMethods.roaring_bitmap_jaccard_index(_pointer, bitmap._pointer);
 public bool Intersects(RoaringBitmap bitmap)
 => NativeMethods.roaring_bitmap_intersect(_pointer, bitmap._pointer);
 public void ILazyXor(RoaringBitmap bitmap, bool bitsetConversion)
 => NativeMethods.roaring_bitmap_lazy_xor_inplace(_pointer, bitmap._pointer, bitsetConversion);
 public RoaringBitmap LazyXor(RoaringBitmap bitmap, bool bitsetConversion)
 => new RoaringBitmap(NativeMethods.roaring_bitmap_lazy_xor(_pointer, bitmap._pointer, bitsetConversion));
 public ulong XorCardinality(RoaringBitmap bitmap)
 => NativeMethods.roaring_bitmap_xor_cardinality(_pointer, bitmap._pointer);
 public void IXor(RoaringBitmap bitmap)
 => NativeMethods.roaring_bitmap_xor_inplace(_pointer, bitmap._pointer);
 public RoaringBitmap Xor(RoaringBitmap bitmap)
 => new RoaringBitmap(NativeMethods.roaring_bitmap_xor(_pointer, bitmap._pointer));
 public ulong AndNotCardinality(RoaringBitmap bitmap)
 => NativeMethods.roaring_bitmap_andnot_cardinality(_pointer, bitmap._pointer);
 public void IAndNot(RoaringBitmap bitmap)
 => NativeMethods.roaring_bitmap_andnot_inplace(_pointer, bitmap._pointer);
 public RoaringBitmap AndNot(RoaringBitmap bitmap)
 => new RoaringBitmap(NativeMethods.roaring_bitmap_andnot(_pointer, bitmap._pointer));