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