in src/main/java/org/apache/datasketches/theta/BitPacking.java [6134:6210]
static void unpackBits62(final long[] values, final int i, final byte[] buf, int off) {
values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 54;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 3) << 60;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 58;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 56;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 3] |= Byte.toUnsignedLong(buf[off++]);
values[i + 4] = (Byte.toUnsignedLong(buf[off++])) << 54;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 46;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 38;
values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 30;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 22;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 14;
values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 6;
values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 2;
values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 3) << 60;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 52;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 44;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 36;
values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 28;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 20;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 12;
values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 4;
values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 4;
values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 58;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 50;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 42;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 34;
values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 26;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 18;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 10;
values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 2;
values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 6;
values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 56;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 48;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 40;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 32;
values[i + 7] |= (Byte.toUnsignedLong(buf[off++])) << 24;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 16;
values[i + 7] |= Byte.toUnsignedLong(buf[off++]) << 8;
values[i + 7] |= Byte.toUnsignedLong(buf[off]);
}