public BitArrayCompress And(BitArrayCompress op) { lock (_lock) { uint[] left; uint[] right; Prelogic(op, out left, out right); for (int i = 0; i < left.Length; i++) { left[i] &= right[i]; } return(new BitArrayCompress(Type.Uncompressed, left)); } }
private void Prelogic(BitArrayCompress op, out uint[] left, out uint[] right) { CheckBitArray(); left = GetUncompressed(); right = op.GetUncompressed(); int ic = left.Length; int uc = right.Length; if (ic > uc) { var ar = new uint[ic]; right.CopyTo(ar, 0); right = ar; } else if (ic < uc) { var ar = new uint[uc]; left.CopyTo(ar, 0); left = ar; } //FixLengths(ints, uncomp); }
public BitArrayCompress And(BitArrayCompress op) { lock (_lock) { uint[] left; uint[] right; Prelogic(op, out left, out right); for (int i = 0; i < left.Length; i++) left[i] &= right[i]; return new BitArrayCompress(Type.Uncompressed, left); } }
private void Prelogic(BitArrayCompress op, out uint[] left, out uint[] right) { CheckBitArray(); left = GetUncompressed(); right = op.GetUncompressed(); int ic = left.Length; int uc = right.Length; if (ic > uc) { var ar = new uint[ic]; right.CopyTo(ar, 0); right = ar; } else if (ic < uc) { var ar = new uint[uc]; left.CopyTo(ar, 0); left = ar; } //FixLengths(ints, uncomp); }