/** * Write out the content of the iterator, but as if it were all zeros. * * @param container where we write * @param i the iterator */ protected static void dischargeAsEmpty(final BitmapStorage32 container, final IteratingRLW32 i) { while (i.size() > 0) { container.addStreamOfEmptyWords(false, i.size()); i.next(); } }
/** * Write out the content of the iterator, but as if it were all zeros. * * @param container where we write * @param i the iterator */ protected static void dischargeAsEmpty(final BitmapStorage32 container, final IteratingRLW32 i) { while (i.size() > 0) { container.addStreamOfEmptyWords(false, i.size()); i.next(); } }
@Override public EWAHIterator32 next() { this.buffer.clear(); int effective = 0; Iterator<IteratingRLW32> i = this.ll.iterator(); while (i.hasNext()) { IteratingRLW32 rlw = i.next(); if (rlw.size() > 0) { int eff = IteratorAggregation32.inplacexor( this.hardbitmap, rlw); if (eff > effective) effective = eff; } else i.remove(); } for (int k = 0; k < effective; ++k) this.buffer.addWord(this.hardbitmap[k]); Arrays.fill(this.hardbitmap, 0); return this.buffer.getEWAHIterator(); } }
@Override public EWAHIterator32 next() { this.buffer.clear(); int effective = 0; Iterator<IteratingRLW32> i = this.ll.iterator(); while (i.hasNext()) { IteratingRLW32 rlw = i.next(); if (rlw.size() > 0) { int eff = IteratorAggregation32.inplaceor( this.hardBitmap, rlw); if (eff > effective) effective = eff; } else i.remove(); } for (int k = 0; k < effective; ++k) this.buffer.addWord(this.hardBitmap[k]); Arrays.fill(this.hardBitmap, 0); return this.buffer.getEWAHIterator(); } }
@Override public EWAHIterator32 next() { this.buffer.clear(); int effective = 0; Iterator<IteratingRLW32> i = this.ll.iterator(); while (i.hasNext()) { IteratingRLW32 rlw = i.next(); if (rlw.size() > 0) { int eff = IteratorAggregation32.inplacexor( this.hardbitmap, rlw); if (eff > effective) effective = eff; } else i.remove(); } for (int k = 0; k < effective; ++k) this.buffer.addWord(this.hardbitmap[k]); Arrays.fill(this.hardbitmap, 0); return this.buffer.getEWAHIterator(); } }
@Override public EWAHIterator32 next() { this.buffer.clear(); int effective = 0; Iterator<IteratingRLW32> i = this.ll.iterator(); while (i.hasNext()) { IteratingRLW32 rlw = i.next(); if (rlw.size() > 0) { int eff = IteratorAggregation32.inplaceor( this.hardBitmap, rlw); if (eff > effective) effective = eff; } else i.remove(); } for (int k = 0; k < effective; ++k) this.buffer.addWord(this.hardBitmap[k]); Arrays.fill(this.hardBitmap, 0); return this.buffer.getEWAHIterator(); } }
@Override public EWAHIterator32 next() { this.buffer.clear(); IteratorAggregation32.andToContainer(this.buffer, this.bufferSize * this.ll.size(), this.ll.get(0), this.ll.get(1)); if (this.ll.size() > 2) { Iterator<IteratingRLW32> i = this.ll.iterator(); i.next(); i.next(); EWAHCompressedBitmap32 tmpbuffer = new EWAHCompressedBitmap32(); while (i.hasNext() && this.buffer.sizeInBytes() > 0) { IteratorAggregation32 .andToContainer(tmpbuffer, this.buffer.getIteratingRLW(), i.next()); this.buffer.swap(tmpbuffer); tmpbuffer.clear(); } } for (IteratingRLW32 aLl : this.ll) { if (aLl.size() == 0) { this.ll.clear(); break; } } return this.buffer.getEWAHIterator(); }
@Override public EWAHIterator32 next() { this.buffer.clear(); IteratorAggregation32.andToContainer(this.buffer, this.bufferSize * this.ll.size(), this.ll.get(0), this.ll.get(1)); if (this.ll.size() > 2) { Iterator<IteratingRLW32> i = this.ll.iterator(); i.next(); i.next(); EWAHCompressedBitmap32 tmpbuffer = new EWAHCompressedBitmap32(); while (i.hasNext() && this.buffer.sizeInBytes() > 0) { IteratorAggregation32 .andToContainer(tmpbuffer, this.buffer.getIteratingRLW(), i.next()); this.buffer.swap(tmpbuffer); tmpbuffer.clear(); } } for (IteratingRLW32 aLl : this.ll) { if (aLl.size() == 0) { this.ll.clear(); break; } } return this.buffer.getEWAHIterator(); }
protected static int inplaceor(int[] bitmap, IteratingRLW32 i) { int pos = 0; int s; while ((s = i.size()) > 0) { if (pos + s < bitmap.length) { final int L = i.getRunningLength();
protected static int inplaceor(int[] bitmap, IteratingRLW32 i) { int pos = 0; int s; while ((s = i.size()) > 0) { if (pos + s < bitmap.length) { final int L = i.getRunningLength();
/** * 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; }
IteratingRLW32 i, int max) { int counter = 0; while (i.size() > 0 && counter < max) { int l1 = i.getRunningLength(); if (l1 > 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; }
IteratingRLW32 i, int max) { int counter = 0; while (i.size() > 0 && counter < max) { int l1 = i.getRunningLength(); if (l1 > 0) {
protected static int inplaceand(int[] bitmap, IteratingRLW32 i) { int pos = 0; int s; while ((s = i.size()) > 0) { if (pos + s < bitmap.length) { final int L = i.getRunningLength();