public void intersection(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]; } for (int i = intdata.length - 1; i >= minlength; i--) { intdata[i] = 0; } setNext(); }
public boolean contains(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--) { if ((extdata[i] & ~intdata[i]) != 0) { return false; } } for (int i = extdata.length - 1; i >= minlength; i--) { if (extdata[i] != 0) { return false; } } return true; }
public void intersection(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]; } for (int i = intdata.length - 1; i >= minlength; i--) { intdata[i] = 0; } setNext(); }
public boolean equals(Object o) { if (o == this) return true; if (o == null || !(o instanceof FastSparseSet)) return false; int[] longdata = ((FastSparseSet)o).getData(); int[] shortdata = data; if (data.length > longdata.length) { shortdata = longdata; longdata = data; } for (int i = shortdata.length - 1; i >= 0; i--) { if (shortdata[i] != longdata[i]) { return false; } } for (int i = longdata.length - 1; i >= shortdata.length; i--) { if (longdata[i] != 0) { return false; } } return true; }
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 complement(FastSparseSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; int extlength = extdata.length; int pointer = 0; do { if (pointer >= extlength) { break; } intdata[pointer] &= ~extdata[pointer]; if (intdata[pointer] == 0) { changeNext(next, pointer, pointer, next[pointer]); } pointer = next[pointer]; } while (pointer != 0); }
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 boolean equals(Object o) { if (o == this) return true; if (!(o instanceof FastSparseSet)) return false; int[] longdata = ((FastSparseSet)o).getData(); int[] shortdata = data; if (data.length > longdata.length) { shortdata = longdata; longdata = data; } for (int i = shortdata.length - 1; i >= 0; i--) { if (shortdata[i] != longdata[i]) { return false; } } for (int i = longdata.length - 1; i >= shortdata.length; i--) { if (longdata[i] != 0) { return false; } } return true; }
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 complement(FastSparseSet<E> set) { int[] extdata = set.getData(); int[] intdata = data; int extlength = extdata.length; int pointer = 0; do { if (pointer >= extlength) { break; } intdata[pointer] &= ~extdata[pointer]; if (intdata[pointer] == 0) { changeNext(next, pointer, pointer, next[pointer]); } pointer = next[pointer]; } while (pointer != 0); }