public override bool Equals(Object?obj) { BitVectorAsSet v = (BitVectorAsSet)obj !; Ensure.That(v).IsNotNull(); return(bits.SetEquals(v.bits)); }
public void BitwiseSubtract(IBitVector u) { BitVectorAsSet v = (BitVectorAsSet)u; Ensure.That(v).IsNotNull(); foreach (ulong b in v.bits) { bits.Remove(b); } }
public void BitwiseOr(IBitVector u) { BitVectorAsSet v = (BitVectorAsSet)u; Ensure.That(v).IsNotNull(); foreach (ulong b in v.bits) { bits.Add(b); } }
public IBitVector BitwiseSubtract(IBitVector x, IBitVector y) { BitVectorAsSet v1 = (BitVectorAsSet)x; BitVectorAsSet v2 = (BitVectorAsSet)y; Ensure.That(v1).IsNotNull(); Ensure.That(v2).IsNotNull(); SortedSet <ulong> zBits = new(v1.bits.Except(v2.bits)); return(new BitVectorAsSet(zBits)); }
public BitVectorAsSet(BitVectorAsSet s) { Ensure.That(s.Size).Is(maxSize); bits = new SortedSet <ulong>(s.bits); }