public void symdiff(FastSparseSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; int minlength = Math.min(extdata.length, intdata.length); for (int i = minlength - 1; i >= 0; i--) { intdata[i] ^= extdata[i]; } boolean expanded = false; for (int i = extdata.length - 1; i >= minlength; i--) { if (extdata[i] != 0) { if (!expanded) { intdata = ensureCapacity(extdata.length - 1); } intdata[i] = extdata[i]; } } setNext(); }
public void union(FastSparseSet<E> set) { int[] extdata = set.getData(); int[] extnext = set.getNext(); int[] intdata = data; int intlength = intdata.length; int pointer = 0; do { if (pointer >= intlength) { intdata = ensureCapacity(extdata.length - 1); } boolean nextrec = (intdata[pointer] == 0); intdata[pointer] |= extdata[pointer]; if (nextrec) { changeNext(next, pointer, next[pointer], pointer); } pointer = extnext[pointer]; } while (pointer != 0); }
public void setAllElements() { int lastblock = factory.getLastBlock(); int lastmask = factory.getLastMask(); if (lastblock >= data.length) { ensureCapacity(lastblock); } for (int i = lastblock - 1; i >= 0; i--) { data[i] = 0xFFFFFFFF; next[i] = i + 1; } data[lastblock] = lastmask | (lastmask - 1); next[lastblock] = 0; }
public void add(E element) { int[] index = colValuesInternal.getWithKey(element); if (index == null) { index = factory.addElement(element); } int block = index[0]; if (block >= data.length) { ensureCapacity(block); } data[block] |= index[1]; changeNext(next, block, next[block], block); }
public void union(FastSparseSet<E> set) { int[] extdata = set.getData(); int[] extnext = set.getNext(); int[] intdata = data; int intlength = intdata.length; int pointer = 0; do { if (pointer >= intlength) { intdata = ensureCapacity(extdata.length - 1); } boolean nextrec = (intdata[pointer] == 0); intdata[pointer] |= extdata[pointer]; if (nextrec) { changeNext(next, pointer, next[pointer], pointer); } pointer = extnext[pointer]; } while (pointer != 0); }
public void add(E element) { int[] index = colValuesInternal.getWithKey(element); if (index == null) { index = factory.addElement(element); } int block = index[0]; if (block >= data.length) { ensureCapacity(block); } data[block] |= index[1]; changeNext(next, block, next[block], block); }