BitsetsNET.BitsetContainer.AndNot C# (CSharp) Method

AndNot() public method

Returns the elements of this BitsetContainer that are not in the ArrayContainer.
public AndNot ( ArrayContainer x ) : Container
x ArrayContainer the ArrayContainer to compare against
return Container
        public override Container AndNot(ArrayContainer x)
        {
            BitsetContainer answer = (BitsetContainer) Clone();
            int c = x.Cardinality;
            for (int k = 0; k < c; ++k)
            {
                ushort v = x.Content[k];
                uint i = (uint) (Utility.ToIntUnsigned(v) >> 6);
                long w = answer.Bitmap[i];
                long aft = w & (~(1L << v));
                answer.Bitmap[i] = aft;
                answer.Cardinality -= (int) ((w ^ aft) >> v);
            }

            if (answer.Cardinality <= ArrayContainer.DEFAULT_MAX_SIZE)
            {
                return answer.ToArrayContainer();
            }
            return answer;
        }

Same methods

BitsetContainer::AndNot ( BitsetContainer x ) : Container