code: public ComplexImg shift(int x, int y){
  		while(x < 0) x += getWidth();
  		while(y < 0) y += getHeight();
  		x %= getWidth();
  		y %= getHeight();
  		ArrayUtils.shift2D(real, width, height, x, y);
  		ArrayUtils.shift2D(imag, width, height, x, y);
  		if(synchronizePowerSpectrum)
  			ArrayUtils.shift2D(power, width, height, x, y);
  		setCurrentShift(this.currentXshift+x, this.currentYshift+y);
  		return this;
  	}
docs: Shifts this image by the specified translation.
  The shift is torus like, so when shifting pixels to the right over the image border,
  they will reappear on the left side of the image.
  This is useful when the DC value should be centered instead of in the top left corner
  (you may use {@link #shiftCornerToCenter()} for this special task though).
  To reset use {@link #resetShift()},
  use {@link #getCurrentXshift()} and {@link #getCurrentYshift()} to get the current shift
  of this image.
  
  @param x shift (positive shifts right)
  @param y shift (positive shift down)
  @return this