Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }