BitsetsNET.BitsetContainer.INot C# (CSharp) Method

INot() public method

Computes the in-place bitwise NOT of this container (complement). Only those bits within the range are affected.The current container is generally modified.May generate a new container.
public INot ( int rangeStart, int rangeEnd ) : Container
rangeStart int beginning of range (inclusive); 0 is beginning of this container.
rangeEnd int ending of range (exclusive)
return Container
        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;
        }