docs: public void dense_gauss_kernel(double sigma , GrayF64 x , GrayF64 y , GrayF64 k ) {
  
  		InterleavedF64 xf=tmpFourier0,yf,xyf=tmpFourier2;
  		GrayF64 xy = tmpReal0;
  		double yy;
  
  		// find x in Fourier domain
  		fft.forward(x, xf);
  		double xx = imageDotProduct(x);
  
  		if( x != y ) {
  			// general case, x and y are different
  			yf = tmpFourier1;
  			fft.forward(y,yf);
  			yy = imageDotProduct(y);
  		} else {
  			// auto-correlation of x, avoid repeating a few operations
  			yf = xf;
  			yy = xx;
  		}
  
  		//----   xy = invF[ F(x)*F(y) ]
  		// cross-correlation term in Fourier domain
  		elementMultConjB(xf,yf,xyf);
  		// convert to spatial domain
  		fft.inverse(xyf,xy);
  		circshift(xy,tmpReal1);
  
  		// calculate gaussian response for all positions
  		gaussianKernel(xx, yy, tmpReal1, sigma, k);
  	}