![](https://secure.gravatar.com/avatar/500a1e2e864ae08f386afde2cd21add0.jpg?s=120&d=mm&r=g)
IMHO, ideally, there would be one 'fast' convolve that does the right thing.
I fully and wholeheartedly agree. Eventually the user shouldn't be bothered too much which implementation is actually the fastest one. And as far as I understand there are two general ways: with and without FFT, where the FFT-less implementation seems to excel when data and kernel differ very much in size. IMHO, it should be possible for the user to make this choice, overwriting the sane defaults. Unfortunately, there is no such default right now.
Or... 'rewrite' so that all use a fast convolution routine, but preserve the separate interfaces (if they exist) as necessary? Indeed. If there are five separate implementations of convolution (or FFT for that matter) within SciPy alone, this seems like a big waste of energy.
Would that be something for GSOC maybe? --Nico