private void setupForCurrentRunningLengthWord() { this.runningLength = WORD_IN_BITS * this.parent.getRunningLength() + this.position; if (!this.parent.getRunningBit()) { this.position = this.runningLength; } this.wordPosition = 0; this.wordLength = this.parent.getNumberOfLiteralWords(); }
private void setupForCurrentRunningLengthWord() { this.runningLength = WORD_IN_BITS * this.parent.getRunningLength() + this.position; if (!this.parent.getRunningBit()) { this.position = this.runningLength; } this.wordPosition = 0; this.wordLength = this.parent.getNumberOfLiteralWords(); }
static void andToContainer(final BitmapStorage32 container, final IteratingRLW32 rlwi, IteratingRLW32 rlwj) { while ((rlwi.size() > 0) && (rlwj.size() > 0)) { while ((rlwi.getRunningLength() > 0) || (rlwj.getRunningLength() > 0)) { final boolean i_is_prey = rlwi .getRunningLength() < rlwj .getRunningLength(); final IteratingRLW32 prey = i_is_prey ? rlwi : rlwj; if (!predator.getRunningBit()) { container.addStreamOfEmptyWords(false, predator.getRunningLength()); prey.discardFirstWords(predator .getRunningLength()); predator.discardFirstWords(predator .getRunningLength()); } else { final int index = discharge(container, prey, predator.getRunningLength()); container.addStreamOfEmptyWords(false, predator.getRunningLength() - index ); predator.discardFirstWords(predator .getRunningLength());
static void andToContainer(final BitmapStorage32 container, final IteratingRLW32 rlwi, IteratingRLW32 rlwj) { while ((rlwi.size() > 0) && (rlwj.size() > 0)) { while ((rlwi.getRunningLength() > 0) || (rlwj.getRunningLength() > 0)) { final boolean i_is_prey = rlwi .getRunningLength() < rlwj .getRunningLength(); final IteratingRLW32 prey = i_is_prey ? rlwi : rlwj; if (!predator.getRunningBit()) { container.addStreamOfEmptyWords(false, predator.getRunningLength()); prey.discardFirstWords(predator .getRunningLength()); predator.discardFirstWords(predator .getRunningLength()); } else { final int index = discharge(container, prey, predator.getRunningLength()); container.addStreamOfEmptyWords(false, predator.getRunningLength() - index ); predator.discardFirstWords(predator .getRunningLength());
while ((rlwi.size() > 0) && (rlwj.size() > 0) && (desiredrlwcount-- > 0)) { while ((rlwi.getRunningLength() > 0) || (rlwj.getRunningLength() > 0)) { final boolean i_is_prey = rlwi .getRunningLength() < rlwj .getRunningLength(); final IteratingRLW32 prey = i_is_prey ? rlwi : rlwj; if (!predator.getRunningBit()) { container.addStreamOfEmptyWords(false, predator.getRunningLength()); prey.discardFirstWords(predator .getRunningLength()); predator.discardFirstWords(predator .getRunningLength()); } else { final int index = discharge(container, prey, predator.getRunningLength()); container.addStreamOfEmptyWords(false, predator.getRunningLength() - index ); predator.discardFirstWords(predator .getRunningLength());
/** * Turn an iterator into a bitmap * * @param i iterator we wish to materialize * @param c where we write */ public static void materialize(final IteratingRLW32 i, final BitmapStorage32 c) { while (true) { if (i.getRunningLength() > 0) { c.addStreamOfEmptyWords(i.getRunningBit(), i.getRunningLength()); } int il = i.getNumberOfLiteralWords(); for (int k = 0; k < il ; ++k) c.addWord(i.getLiteralWordAt(k)); if (!i.next()) break; } }
/** * @param i iterator we wish to iterate over * @return the cardinality (number of set bits) corresponding to the * iterator */ public static int cardinality(final IteratingRLW32 i) { int answer = 0; while (true) { if (i.getRunningBit()) answer += i.getRunningLength() * EWAHCompressedBitmap32.WORD_IN_BITS; int il = i.getNumberOfLiteralWords(); for (int k = 0; k < il; ++k) answer += Integer.bitCount(i.getLiteralWordAt(k)); if (!i.next()) break; } return answer; }
/** * @param i iterator we wish to iterate over * @return the cardinality (number of set bits) corresponding to the * iterator */ public static int cardinality(final IteratingRLW32 i) { int answer = 0; while (true) { if (i.getRunningBit()) answer += i.getRunningLength() * EWAHCompressedBitmap32.WORD_IN_BITS; int il = i.getNumberOfLiteralWords(); for (int k = 0; k < il; ++k) answer += Integer.bitCount(i.getLiteralWordAt(k)); if (!i.next()) break; } return answer; }
/** * Turn an iterator into a bitmap * * @param i iterator we wish to materialize * @param c where we write */ public static void materialize(final IteratingRLW32 i, final BitmapStorage32 c) { while (true) { if (i.getRunningLength() > 0) { c.addStreamOfEmptyWords(i.getRunningBit(), i.getRunningLength()); } int il = i.getNumberOfLiteralWords(); for (int k = 0; k < il ; ++k) c.addWord(i.getLiteralWordAt(k)); if (!i.next()) break; } }
/** * Turn an iterator into a bitmap * * @param i iterator we wish to materialize * @param c where we write * @param max maximum number of words to materialize * @return how many words were actually materialized */ public static long materialize(final IteratingRLW32 i, final BitmapStorage32 c, int max) { final int origMax = max; while (true) { if (i.getRunningLength() > 0) { int l = i.getRunningLength(); if (l > max) l = max; c.addStreamOfEmptyWords(i.getRunningBit(), l); max -= l; } long L = i.getNumberOfLiteralWords(); for (int k = 0; k < L; ++k) c.addWord(i.getLiteralWordAt(k)); if (max > 0) { if (!i.next()) break; } else break; } return origMax - max; }
/** * Turn an iterator into a bitmap * * @param i iterator we wish to materialize * @param c where we write * @param max maximum number of words to materialize * @return how many words were actually materialized */ public static long materialize(final IteratingRLW32 i, final BitmapStorage32 c, int max) { final int origMax = max; while (true) { if (i.getRunningLength() > 0) { int l = i.getRunningLength(); if (l > max) l = max; c.addStreamOfEmptyWords(i.getRunningBit(), l); max -= l; } long L = i.getNumberOfLiteralWords(); for (int k = 0; k < L; ++k) c.addWord(i.getLiteralWordAt(k)); if (max > 0) { if (!i.next()) break; } else break; } return origMax - max; }
while ((s = i.size()) > 0) { if (pos + s < bitmap.length) { final int L = i.getRunningLength(); if (i.getRunningBit()) java.util.Arrays.fill(bitmap, pos, pos int l = i.getRunningLength(); if (pos + l > bitmap.length) { if (i.getRunningBit()) {
while ((s = i.size()) > 0) { if (pos + s < bitmap.length) { final int L = i.getRunningLength(); if (i.getRunningBit()) java.util.Arrays.fill(bitmap, pos, pos int l = i.getRunningLength(); if (pos + l > bitmap.length) { if (i.getRunningBit()) {
while ((s = i.size()) > 0) { if (pos + s < bitmap.length) { final int L = i.getRunningLength(); if (!i.getRunningBit()) { for (int k = pos; k < pos + L; ++k) int l = i.getRunningLength(); if (pos + l > bitmap.length) { if (!i.getRunningBit()) {
final int wordi = i / WORD_IN_BITS; while (wordChecked <= wordi) { wordChecked += j.getRunningLength(); if (wordi < wordChecked) { return j.getRunningBit();
final int wordi = i / WORD_IN_BITS; while (wordChecked <= wordi) { wordChecked += j.getRunningLength(); if (wordi < wordChecked) { return j.getRunningBit();
/** * Write out up to max negated words, returns how many were written * * @param container target for writes * @param i source of data * @param max maximal number of writes * @return how many written */ protected static int dischargeNegated(final BitmapStorage32 container, IteratingRLW32 i, int max) { int counter = 0; while (i.size() > 0 && counter < max) { int l1 = i.getRunningLength(); if (l1 > 0) { if (l1 + counter > max) l1 = max - counter; container.addStreamOfEmptyWords(i.getRunningBit(), l1); counter += l1; } int l = i.getNumberOfLiteralWords(); if (l + counter > max) l = max - counter; for (int k = 0; k < l; ++k) { container.addWord(i.getLiteralWordAt(k)); } counter += l; i.discardFirstWords(l + l1); } return counter; }
int counter = 0; while (i.size() > 0 && counter < max) { int l1 = i.getRunningLength(); if (l1 > 0) { if (l1 + counter > max)
/** * Write out up to max negated words, returns how many were written * * @param container target for writes * @param i source of data * @param max maximal number of writes * @return how many written */ protected static int dischargeNegated(final BitmapStorage32 container, IteratingRLW32 i, int max) { int counter = 0; while (i.size() > 0 && counter < max) { int l1 = i.getRunningLength(); if (l1 > 0) { if (l1 + counter > max) l1 = max - counter; container.addStreamOfEmptyWords(i.getRunningBit(), l1); counter += l1; } int l = i.getNumberOfLiteralWords(); if (l + counter > max) l = max - counter; for (int k = 0; k < l; ++k) { container.addWord(i.getLiteralWordAt(k)); } counter += l; i.discardFirstWords(l + l1); } return counter; }
int counter = 0; while (i.size() > 0 && counter < max) { int l1 = i.getRunningLength(); if (l1 > 0) { if (l1 + counter > max)