Hi,
My code, when run as a 2048-point FFT, agrees with the MIT FFTW one to a max error margin of 6 parts per million.
This might be of interest: I've ported FFTW's arbitrary-precision FFT to boost::multiprecision
Which FFTs did you concentrate on, dimensions, complex, etc.?
only 1D complex (radix-2 Cooley-Tukey, Bluestein for non-power-of-2 sizes), using std::complex with the multiprecision type.
What precisions did you use? Which multiprecision FP backend did you use?
static_mpfr_float_50 to check float/double FFTs (and float1000 to check float50 has the same error behaviour, around ~1e-50).
How was the performance?
Very good, especially compared to FFTW's original implementation.
Where do you see the main application of your work in this area?
I use it to verify an OpenCL-FFT implementation when debugging, so performance isn't that important.
How was your experience with multiprecision (critical suggestions are OK)?
Straightforward, this is the first time I've used it; there was an inconsistency between float50 and float instances because pow(value,2) occasionally seemed to return wrong results which caused some confusion thanks to template magic; I ended up using boost::math::pow<2>(value) which didn't show the same problem. I think it was a problem in my code, not a bug in boost. Cheers, -- Pascal Germroth