Macro CONV_OLA_BATCH
#define CONV_OLA_BATCH 64ULTwo strategies, both on fft_batch / fft_n_ (threaded, vendor FFT if linked):
- kernel much shorter than the signal: overlap-add. The kernel's spectrum is computed once at a block size N of about 8x the kernel; signal blocks of N - len_h + 1 samples go two to a complex FFT (one in the real part, one in the imaginary part: H is a real signal's spectrum, so the two results come back apart), in batches through fft_batch, multiplied on the pool, transformed back and added in.
- otherwise one transform of the whole thing, with x and h packed into one complex FFT (x + i h) and separated in the frequency domain:
two transforms instead of three.