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.
Just so you know - std::complex isn't guarenteed to work with user defined types (and often doesn't sadly) - we really must get around to adding a complex number adapter to the multiprecision lib.
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.
If you used 1.53.0 there was a bug in the expression template code that caused pow to misbehave in some situations, basically if you wrote: a = pow(a, n); rather than: b = pow(a, n); It's fixed for the next release. Regards, John.