code: public static void bufferedorWithContainer(
              final BitmapStorage32 container, final int bufSize,
              final EWAHCompressedBitmap32... bitmaps) {
          int range = 0;
          EWAHCompressedBitmap32[] sbitmaps = bitmaps.clone();
          Arrays.sort(sbitmaps, new Comparator<EWAHCompressedBitmap32>() {
              @Override
              public int compare(EWAHCompressedBitmap32 a,
                                 EWAHCompressedBitmap32 b) {
                  return b.sizeInBits() - a.sizeInBits();
              }
          });
  
          java.util.ArrayList<IteratingBufferedRunningLengthWord32> al = new java.util.ArrayList<IteratingBufferedRunningLengthWord32>();
          for (EWAHCompressedBitmap32 bitmap : sbitmaps) {
              if (bitmap.sizeInBits() > range)
                  range = bitmap.sizeInBits();
              al.add(new IteratingBufferedRunningLengthWord32(bitmap));
          }
          int[] hardbitmap = new int[bufSize];
          int maxr = al.size();
          while (maxr > 0) {
              int effective = 0;
              for (int k = 0; k < maxr; ++k) {
                  if (al.get(k).size() > 0) {
                      int eff = IteratorAggregation32
                              .inplaceor(hardbitmap,
                                      al.get(k));
                      if (eff > effective)
                          effective = eff;
                  } else
                      maxr = k;
              }
              for (int k = 0; k < effective; ++k)
                  container.addWord(hardbitmap[k]);
              Arrays.fill(hardbitmap, 0);
  
          }
          container.setSizeInBitsWithinLastWord(range);
      }
docs: Compute the or aggregate using a temporary uncompressed bitmap.
  
  @param container where the aggregate is written
  @param bufSize   buffer size used during the computation in 64-bit
  words
  @param bitmaps   the source bitmaps