Boost logo

Boost :

Subject: Re: [boost] Request to contribute boost::FFT
From: John Maddock (john_at_[hidden])
Date: 2013-06-03 04:08:53


>>> 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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk