public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {for (int i = 0; i < iterations; ++i) {final long byte0 = blocks[blocksOffset++] & 0xFF;final long byte1 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = (byte0 << 6) | (byte1 >>> 2);final long byte2 = blocks[blocksOffset++] & 0xFF;final long byte3 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = ((byte1 & 3) << 12) | (byte2 << 4) | (byte3 >>> 4);final long byte4 = blocks[blocksOffset++] & 0xFF;final long byte5 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = ((byte3 & 15) << 10) | (byte4 << 2) | (byte5 >>> 6);final long byte6 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = ((byte5 & 63) << 8) | byte6;}}
public override void Decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations){for (int i = 0; i < iterations; ++i){long byte0 = blocks[blocksOffset++] & 0xFF;long byte1 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = (byte0 << 6) | ((long)((ulong)byte1 >> 2));long byte2 = blocks[blocksOffset++] & 0xFF;long byte3 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = ((byte1 & 3) << 12) | (byte2 << 4) | ((long)((ulong)byte3 >> 4));long byte4 = blocks[blocksOffset++] & 0xFF;long byte5 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = ((byte3 & 15) << 10) | (byte4 << 2) | ((long)((ulong)byte5 >> 6));long byte6 = blocks[blocksOffset++] & 0xFF;values[valuesOffset++] = ((byte5 & 63) << 8) | byte6;}}