public static BitVector and(BitVector set1, BitVector set2) { int min = set1.size(); { int max = set2.size(); if (min > max) { min = max; } // max is not necessarily correct at this point, so let it go // out of scope } BitVector ret = new BitVector(min); long[] retbits = ret.bits; long[] bits1 = set1.bits; long[] bits2 = set2.bits; min >>= 6; for (int i = 0; i < min; i++) { retbits[i] = bits1[i] & bits2[i]; } return ret; }
public static BitVector or(BitVector set1, BitVector set2) { int min = set1.size(); int max = set2.size(); if (min > max) { min = max; max = set1.size(); } BitVector ret = new BitVector(max); long[] retbits = ret.bits; long[] bits1 = set1.bits; long[] bits2 = set2.bits; min >>= 6; max >>= 6; for (int i = 0; i < min; i++) { retbits[i] = bits1[i] | bits2[i]; } if (bits1.length == min) { System.arraycopy(bits2, min, retbits, min, max - min); } else { System.arraycopy(bits1, min, retbits, min, max - min); } return ret; }
int size = children.size();
public static BitVector or( BitVector set1, BitVector set2 ) { int min = set1.size(); int max = set2.size(); if( min > max ) { min = max; max = set1.size(); } BitVector ret = new BitVector( max ); long[] retbits = ret.bits; long[] bits1 = set1.bits; long[] bits2 = set2.bits; min >>= 6; max >>= 6; for( int i = 0; i < min; i++ ) { retbits[i] = bits1[i] | bits2[i]; } if( bits1.length == min ) { System.arraycopy( bits2, min, retbits, min, max-min ); } else { System.arraycopy( bits1, min, retbits, min, max-min ); } return ret; } public BitSetIterator iterator() {
public static BitVector and( BitVector set1, BitVector set2 ) { int min = set1.size(); { int max = set2.size(); if( min > max ) { min = max; } // max is not necessarily correct at this point, so let it go // out of scope } BitVector ret = new BitVector( min ); long[] retbits = ret.bits; long[] bits1 = set1.bits; long[] bits2 = set2.bits; min >>= 6; for( int i = 0; i < min; i++ ) { retbits[i] = bits1[i] & bits2[i]; } return ret; }
public static BitVector and( BitVector set1, BitVector set2 ) { int min = set1.size(); { int max = set2.size(); if( min > max ) { min = max; } // max is not necessarily correct at this point, so let it go // out of scope } BitVector ret = new BitVector( min ); long[] retbits = ret.bits; long[] bits1 = set1.bits; long[] bits2 = set2.bits; min >>= 6; for( int i = 0; i < min; i++ ) { retbits[i] = bits1[i] & bits2[i]; } return ret; }
public static BitVector or( BitVector set1, BitVector set2 ) { int min = set1.size(); int max = set2.size(); if( min > max ) { min = max; max = set1.size(); } BitVector ret = new BitVector( max ); long[] retbits = ret.bits; long[] bits1 = set1.bits; long[] bits2 = set2.bits; min >>= 6; max >>= 6; for( int i = 0; i < min; i++ ) { retbits[i] = bits1[i] | bits2[i]; } if( bits1.length == min ) { System.arraycopy( bits2, min, retbits, min, max-min ); } else { System.arraycopy( bits1, min, retbits, min, max-min ); } return ret; } public BitSetIterator iterator() {
int size = children.size();
int size = children.size();