protected static long deinterleave(long value) {
        value &= MAGIC[0];
        value = (value ^ value >>> SHIFT[0]) & MAGIC[1];
        value = (value ^ value >>> SHIFT[1]) & MAGIC[2];
        value = (value ^ value >>> SHIFT[2]) & MAGIC[3];
        value = (value ^ value >>> SHIFT[3]) & MAGIC[4];
        value = (value ^ value >>> SHIFT[4]) & MAGIC[5];
        return value;
    }
protected static long deinterleave ( long value ) { value &= MAGIC [ 0 ] ; value = ( value ^ value > > > SHIFT [ 0 ] ) & MAGIC [ 1 ] ; value = ( value ^ value > > > SHIFT [ 1 ] ) & MAGIC [ 2 ] ; value = ( value ^ value > > > SHIFT [ 2 ] ) & MAGIC [ 3 ] ; value = ( value ^ value > > > SHIFT [ 3 ] ) & MAGIC [ 4 ] ; value = ( value ^ value > > > SHIFT [ 4 ] ) & MAGIC [ 5 ] ; return value ; }
Returns one of two 32-bit values that were previously interleaved to produce a 64-bit value.

@param value
64-bit value that was created by interleaving two 32-bit values
@return one of two previously interleaved values