On 28-lug-10, at 06:22, Don wrote:

dsimcha wrote:
I'm going to need an FFT library to perform some convolutions at some point soon. Two absolute, non-negotiable requirements are that it be written in pure D and that it be Boost or compatibly (i.e. zlib or public domain)
licensed.  I also prefer "simple and good enough"

What does "simple" mean?
If you're happy with lengths being restricted to powers of 2, it's simple. Most of the complexity of something like FFTW comes from support for arbitrary lengths.

and cache awarness..., but yes efficiently supporting arbitrary lengths is difficult.

3. If I do end up writing my own or porting, is there sufficient interest in this that I should try to target it for std.numerics, or would I be better off
just making it good enough for my use case?

I think that a basic power-of-2 FFT is simple enough, and sufficiently widely used to be worth including.

Note that the fft from fftpack support arbitrary lengths (the efficiency decreases, but not so drastically). I would put something like that for "casual" use, so that one doesn't have to worry too much about sizes. If he needs something better then he should start to worry about it. For example one could have a routine returning the next "good" size, always increasing.

Fawzi

Reply via email to