sherifffruitfly said:
http://www.fftw.org/
(a) Free.
(b) arbitrary n
(c) FAST
(d) stable
(e) C, not .Net (but are you truly unable to access a C library?)
I'm writing F# code anyway, so C# or (good) C makes little difference to me
as they both need wrapping.
I've just written some simple bindings to FFTW from F#. They seem to work ok
but the DLL doesn't contain all of the necessary information, so some magic
numbers are hardcoded (e.g. FFTW_FORWARD etc. are #defines).
This adds Mathematica/Matlab-like Fourier routines to F#, which you can now
use from interactive sessions.
Incidentally, I found a Windows DLL on fftw.org:
http://www.fftw.org/install/windows.html
My concern about FFTW was that they hate MS compilers (too buggy to compile
FFTW with optimisations) and I didn't want to advise my readers to install
Cygwin (they might as well just run Linux) or fork out for a decent
compiler. Having a binary distro for Windows saves this problem.
Thanks very much!
Now for the rest...