question: public static long [ ] shiftLeftI ( long [ ] v , int off ) { if ( off == 0 ) { return v ; } if ( off < 0 ) { return shiftRightI ( v , - off ) ; } final int shiftWords = off > > > LONG_LOG2_SIZE ; final int shiftBits = off & LONG_LOG2_MASK ; if ( shiftWords >= v . length ) { return zeroI ( v ) ; } if ( shiftBits == 0 ) { System . arraycopy ( v , 0 , v , shiftWords , v . length - shiftWords ) ; Arrays . fill ( v , 0 , shiftWords , 0 ) ; return v ; } final int unshiftBits = Long . SIZE - shiftBits ; for ( int i = v . length - 1 ; i > shiftWords ; i -- ) { final int src = i - shiftWords ; v [ i ] = ( v [ src ] << shiftBits ) | ( v [ src - 1 ] > > > unshiftBits ) ; } v [ shiftWords ] = v [ 0 ] << shiftBits ; Arrays . fill ( v , 0 , shiftWords , 0 ) ; return v ; }
target:  Shift a long[] bitset inplace. Low-endian layout for the array.