public override Container INot(int rangeStart, int rangeEnd)
{
if (rangeEnd - rangeStart == MAX_CAPACITY)
{
Utility.FlipBitsetRange(Bitmap, rangeStart, rangeEnd);
Cardinality = MAX_CAPACITY - Cardinality;
}
else if (rangeEnd - rangeStart > MAX_CAPACITY / 2)
{
Utility.FlipBitsetRange(Bitmap, rangeStart, rangeEnd);
ComputeCardinality();
}
else
{
Cardinality += Utility.FlipBitsetRangeAndCardinalityChange(Bitmap, rangeStart, rangeEnd);
}
if (Cardinality <= ArrayContainer.DEFAULT_MAX_SIZE)
{
return ToArrayContainer();
}
return this;
}