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(); }
/** * @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; }
return j.getRunningBit(); if (wordi < wordChecked + j.getNumberOfLiteralWords()) { final int w = j.getLiteralWordAt(wordi - wordChecked); return (w & (1 << i)) != 0; wordChecked += j.getNumberOfLiteralWords(); j.next();
return j.getRunningBit(); if (wordi < wordChecked + j.getNumberOfLiteralWords()) { final int w = j.getLiteralWordAt(wordi - wordChecked); return (w & (1 << i)) != 0; wordChecked += j.getNumberOfLiteralWords(); j.next();
+ L, ~0); pos += L; final int LR = i.getNumberOfLiteralWords(); for (int k = 0; k < LR; ++k) bitmap[pos++] |= i.getLiteralWordAt(k);
+ L, ~0); pos += L; final int LR = i.getNumberOfLiteralWords(); for (int k = 0; k < LR; ++k) bitmap[pos++] |= i.getLiteralWordAt(k);
/** * 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 */ 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; } }
/** * 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; }
/** * 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; }
counter += l1; int l = i.getNumberOfLiteralWords(); if (l + counter > max) l = max - counter;
/** * 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; }
counter += l1; int l = i.getNumberOfLiteralWords(); if (l + counter > max) l = max - counter;
rlwi.getNumberOfLiteralWords(), rlwj.getNumberOfLiteralWords()); if (nbre_literal > 0) { for (int k = 0; k < nbre_literal; ++k)
rlwi.getNumberOfLiteralWords(), rlwj.getNumberOfLiteralWords()); if (nbre_literal > 0) { for (int k = 0; k < nbre_literal; ++k)
rlwi.getNumberOfLiteralWords(), rlwj.getNumberOfLiteralWords()); if (nbre_literal > 0) { desiredrlwcount -= nbre_literal;
final int LR = i.getNumberOfLiteralWords(); for (int k = 0; k < LR; ++k) bitmap[pos++] &= i.getLiteralWordAt(k);