code: public static MutableRoaringBitmap bitmapOf(final long[] words) {
      // split long[] into blocks.
      // each block becomes a single container, if any bit is set
      final MutableRoaringBitmap ans = new MutableRoaringBitmap();
      int containerIndex = 0;
      for (int from = 0; from < words.length; from += BLOCK_LENGTH) {
        final int to = Math.min(from + BLOCK_LENGTH, words.length);
        final int blockCardinality = cardinality(from, to, words);
        if (blockCardinality > 0) {
          ((MutableRoaringArray) ans.highLowContainer).insertNewKeyValueAt(containerIndex++,
              BufferUtil.highbits(from * Long.SIZE),
              BufferBitSetUtil.containerOf(from, to, blockCardinality, words));
        }
      }
      return ans;
    }
docs: Generate a MutableRoaringBitmap out of a long[], each long using little-endian representation
  of its bits
  
  @see BitSet#toLongArray() for an equivalent
  @param words array of longs (will not be modified)
  @return roaring bitmap