FFT Lib?

Don nospam at nospam.com
Wed Jul 28 07:57:00 PDT 2010


dsimcha wrote:
> == Quote from Don (nospam at nospam.com)'s article
>> 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.
> 
> Yeh, I only need powers of two.  I realize this isn't very hard because I wrote a
> prototype of it a while back.  However, this prototype would basically need to be
> rewritten b/c:
> 
> 1.  It only supports pure real inputs, meaning you can't use it to compute inverse
> FFTs.
> 
> 2.  I tried to write it using strides instead of rearranging the elements of the
> arrays, mostly because I was curious what effect this would have on performance.
> It turned out to be disastrous, presumably because it killed cache efficiency.

I believe that a moderately efficient cache-aware FFT could be made 
using simple blocking with the info from core.cpuid.


More information about the Digitalmars-d mailing list