private boolean literalHasNext() { while (this.word == 0 && this.wordPosition < this.wordLength) { this.word = this.parent.getLiteralWordAt(this.wordPosition++); this.literalPosition = this.position; this.position += WORD_IN_BITS; } return this.word != 0; } }
private boolean literalHasNext() { while (this.word == 0 && this.wordPosition < this.wordLength) { this.word = this.parent.getLiteralWordAt(this.wordPosition++); this.literalPosition = this.position; this.position += WORD_IN_BITS; } return this.word != 0; } }
/** * @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; }
final int LR = i.getNumberOfLiteralWords(); for (int k = 0; k < LR; ++k) bitmap[pos++] |= i.getLiteralWordAt(k); if (!i.next()) { return pos; pos += l; for (int k = 0; pos < bitmap.length; ++k) bitmap[pos++] |= i.getLiteralWordAt(k); i.discardFirstWords(howmany); return pos;
final int LR = i.getNumberOfLiteralWords(); for (int k = 0; k < LR; ++k) bitmap[pos++] |= i.getLiteralWordAt(k); if (!i.next()) { return pos; pos += l; for (int k = 0; pos < bitmap.length; ++k) bitmap[pos++] |= i.getLiteralWordAt(k); i.discardFirstWords(howmany); return pos;
final int LR = i.getNumberOfLiteralWords(); for (int k = 0; k < LR; ++k) bitmap[pos++] &= i.getLiteralWordAt(k); if (!i.next()) { return pos; pos += l; for (int k = 0; pos < bitmap.length; ++k) bitmap[pos++] &= i.getLiteralWordAt(k); i.discardFirstWords(howMany); return pos;
final int w = j.getLiteralWordAt(wordi - wordChecked); return (w & (1 << i)) != 0;
/** * 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; } }
final int w = j.getLiteralWordAt(wordi - wordChecked); return (w & (1 << i)) != 0;
/** * 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; }
l = max - counter; for (int k = 0; k < l; ++k) { container.addWord(i.getLiteralWordAt(k));
/** * 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; }
l = max - counter; for (int k = 0; k < l; ++k) { container.addWord(i.getLiteralWordAt(k));
if (nbre_literal > 0) { for (int k = 0; k < nbre_literal; ++k) container.addWord(rlwi.getLiteralWordAt(k) & rlwj.getLiteralWordAt(k)); rlwi.discardFirstWords(nbre_literal); rlwj.discardFirstWords(nbre_literal);
desiredrlwcount -= nbre_literal; for (int k = 0; k < nbre_literal; ++k) container.addWord(rlwi.getLiteralWordAt(k) & rlwj.getLiteralWordAt(k)); rlwi.discardFirstWords(nbre_literal); rlwj.discardFirstWords(nbre_literal);
if (nbre_literal > 0) { for (int k = 0; k < nbre_literal; ++k) container.addWord(rlwi.getLiteralWordAt(k) & rlwj.getLiteralWordAt(k)); rlwi.discardFirstWords(nbre_literal); rlwj.discardFirstWords(nbre_literal);