public void convolve()
{
final long[] min = new long[ img.numDimensions() ];
final long[] max = new long[ img.numDimensions() ];
final Pair< Interval, Interval > fftIntervals = setupFFTs( imgInterval, kernelInterval, min, max );
if ( fftImg == null )
fftImg = computeImgFFT( fftIntervals.getA(), img, fftFactory, service );
if ( fftKernel == null )
fftKernel = computeKernelFFT( fftIntervals.getB(), min, max, complexConjugate, kernel, fftFactory, service );
computeConvolution( fftImg, fftKernel, output, keepImgFFT, service );
}