New real FFT routines

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

DaveClark wrote: Wed Feb 03, 2021 5:33 pm Another reason for choosing something else or writing one's own is that FFTW3 is almost impossible to debug, or at least I found that to be the case. Although the authors boldly claimed it was written in the "lingua franca" of the scientific community (C in case anyone like me thinks it was FORTRAN transitioning to C++ at that time, with C a distinct minority in science) the C code for the routines is machine-generated by Caml Light scripts and is effectively read-only. It might as well have been purposefully obfuscated The authors themselves have admitted that there are cases in which they don't know what the code is doing.

Now it's been many years since I considered all of this, so perhaps better information is out there and perhaps the most recent versions are eminently readable.
Well, if they wanted compile-time computing they could as well have stuck with Lisp.

It should be possible to make debug information that displays the appropriate Caml code instead of the generated C code in gdb, but there is little existing art out there.
Last edited by uOpt on Thu Feb 04, 2021 5:42 pm, edited 1 time in total.

Post

uOpt wrote: Wed Feb 03, 2021 5:43 pm Well, if they wanted compile-time computing they could as well have stuck with Lisp.
My DustFFT is generated with a Lisp script. :)

edit: Although arguably the generated C-code is probably more readable than the script.

Post

uOpt wrote: Wed Feb 03, 2021 5:43 pm I should be possible to make debug information that displays the appropriate Caml code instead of the generated C code in gdb, but there is little existing art out there.
I see that now OCaml is used, so perhaps this is possible? I don't recall that the Caml code was available back when I was trying to work with FFTW, and I'm not sure it would have been helpful. FFTW was crashing for certain block sizes, but not most block sizes. In my experience, troubleshooting this kind of thing requires descent down into a more detailed level, even if it can be fixed at a higher level.

Post Reply

Return to “DSP and Plugin Development”