Sometimes you have to perform multiple related convolutions, using the same data but different kernels. This function allows you to reuse intermediary results. When computing the convolution via multiplication in the frequency domain, we reuse the FFT of the data, and need to compute only the FFT of the kernel and the IFFT of their product. So this helps if the kernels are small and many and the data is large and unique. Matrix (not just vector) input is supported. Calling syntax is identical to Matlab's own conv2/filter2. If you need an FFT-based implementation of convolution without reuse, I'd recommend submission number 24504. Run test('filter2fft') to check your installation.
updated list of acknowledgements and list of incorporated submissions.