public void decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations) {for (int i = 0; i < iterations; ++i) {final long block = blocks[blocksOffset++];for (int shift = 60; shift >= 0; shift -= 4) {values[valuesOffset++] = (block >>> shift) & 15;}}}

public void decode ( long [ ] blocks , int blocksOffset , long [ ] values , int valuesOffset , int iterations ) { for ( int i = 0 ; i < iterations ; ++ i ) { final long block = blocks [ blocksOffset ++ ] ; for ( int shift = 60 ; shift >= 0 ; shift -= 4 ) { values [ valuesOffset ++ ] = ( block > > > shift ) & 15 ; } } }
public override void Decode(long[] blocks, int blocksOffset, long[] values, int valuesOffset, int iterations){for (int i = 0; i < iterations; ++i){long block = blocks[blocksOffset++];for (int shift = 60; shift >= 0; shift -= 4){values[valuesOffset++] = ((long)((ulong)block >> shift)) & 15;}}}
