no optimizer turned on.
That's how we did it in DC-DSP's FFT. Milenko Mitrovic has precompiled lookups for blocks upto 8092. He also precompiles sincos tables. (In initialization)
Sources are here:
https://www.dsp-worx.de/?n=5 https://www.dsp-worx.de/download/DCDSPFilter_v1.03_Source.zipPrecompiled tables - written out - are in
https://www.dsp-worx.de/download/FastFourierDJB.zipAt the time we made a mistake to compile the lookup lists so large, since what we actually needed is 1024 2048 and 4096 to cover real-time FFT's (doubles) for audio. (assumes 44100,48000 and 96000 sr) Anything else is a bit over the top for audio. Anything smaller is for display purposes.
The code is 22 years old but still good, although a bit large. On modern hardware I prefer a simpler version, like I posted here or like you just showed.
I am not sure the code as-is was already freepascalified, but should be no problem ( the bare code, not the visual components). This code is windows 32 only! although we made attempts to make a 64 bit version. Don't know the status, but I know the code is forked a few times, so it may have been done already.
Side note: the 3DNow efforts to which I contributed are now pretty much useless... The other FP instructions still work, though.
For all intend and purpose: for all table based examples given in the discussion, you just need those tables from the fastfourierdjb.pas (attached)