static void unpackBits55()

in src/main/java/org/apache/datasketches/theta/BitPacking.java [5627:5697]


  static void unpackBits55(final long[] values, final int i, final byte[] buf, int off) {
    values[i + 0] = (Byte.toUnsignedLong(buf[off++])) << 47;
    values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 39;
    values[i + 0] |= (Byte.toUnsignedLong(buf[off++])) << 31;
    values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 23;
    values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 15;
    values[i + 0] |= Byte.toUnsignedLong(buf[off++]) << 7;
    values[i + 0] |= Byte.toUnsignedLong(buf[off]) >>> 1;

    values[i + 1] = (Byte.toUnsignedLong(buf[off++]) & 1) << 54;
    values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 46;
    values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 38;
    values[i + 1] |= (Byte.toUnsignedLong(buf[off++])) << 30;
    values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 22;
    values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 14;
    values[i + 1] |= Byte.toUnsignedLong(buf[off++]) << 6;
    values[i + 1] |= Byte.toUnsignedLong(buf[off]) >>> 2;

    values[i + 2] = (Byte.toUnsignedLong(buf[off++]) & 3) << 53;
    values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 45;
    values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 37;
    values[i + 2] |= (Byte.toUnsignedLong(buf[off++])) << 29;
    values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 21;
    values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 13;
    values[i + 2] |= Byte.toUnsignedLong(buf[off++]) << 5;
    values[i + 2] |= Byte.toUnsignedLong(buf[off]) >>> 3;

    values[i + 3] = (Byte.toUnsignedLong(buf[off++]) & 7) << 52;
    values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 44;
    values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 36;
    values[i + 3] |= (Byte.toUnsignedLong(buf[off++])) << 28;
    values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 20;
    values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 12;
    values[i + 3] |= Byte.toUnsignedLong(buf[off++]) << 4;
    values[i + 3] |= Byte.toUnsignedLong(buf[off]) >>> 4;

    values[i + 4] = (Byte.toUnsignedLong(buf[off++]) & 0xf) << 51;
    values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 43;
    values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 35;
    values[i + 4] |= (Byte.toUnsignedLong(buf[off++])) << 27;
    values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 19;
    values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 11;
    values[i + 4] |= Byte.toUnsignedLong(buf[off++]) << 3;
    values[i + 4] |= Byte.toUnsignedLong(buf[off]) >>> 5;

    values[i + 5] = (Byte.toUnsignedLong(buf[off++]) & 0x1f) << 50;
    values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 42;
    values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 34;
    values[i + 5] |= (Byte.toUnsignedLong(buf[off++])) << 26;
    values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 18;
    values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 10;
    values[i + 5] |= Byte.toUnsignedLong(buf[off++]) << 2;
    values[i + 5] |= Byte.toUnsignedLong(buf[off]) >>> 6;

    values[i + 6] = (Byte.toUnsignedLong(buf[off++]) & 0x3f) << 49;
    values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 41;
    values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 33;
    values[i + 6] |= (Byte.toUnsignedLong(buf[off++])) << 25;
    values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 17;
    values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 9;
    values[i + 6] |= Byte.toUnsignedLong(buf[off++]) << 1;
    values[i + 6] |= Byte.toUnsignedLong(buf[off]) >>> 7;

    values[i + 7] = (Byte.toUnsignedLong(buf[off++]) & 0x7f) << 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]);
  }