public void decode(byte[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {for (int j = 0; j < iterations; ++j) {final byte block = blocks[blocksOffset++];values[valuesOffset++] = (block >>> 6) & 3;values[valuesOffset++] = (block >>> 4) & 3;values[valuesOffset++] = (block >>> 2) & 3;values[valuesOffset++] = block & 3;}}

public override void Decode(byte[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations){for (int j = 0; j < iterations; ++j){var block = blocks[blocksOffset++];values[valuesOffset++] = ((int)((uint)block >> 6)) & 3;values[valuesOffset++] = ((int)((uint)block >> 4)) & 3;values[valuesOffset++] = ((int)((uint)block >> 2)) & 3;values[valuesOffset++] = block & 3;}}
