On 6/15/10 11:31 AM, Robert Dodier wrote:
> On 6/12/10, Raymond Toy <toy.raymond at gmail.com> wrote:
>
>
>> If yes, then maxima cannot do that. (It probably should. And also
>> support bfloats.)
>>
> I have a modified version of fft-core.lisp to do bigfloat arithmetic.
> I just replaced all the (coerce foo 'flonum) with ($bfloat foo)
> and (+ foo bar) with (m+ foo bar), etc. Is there a neater way
> to get bigfloat arithmetic?
>
The simplest way is to put the fft-core in the bigfloat package. Then +
is the generic + which handles CL floats and bigfloat reals and
complexes. Use bigfloat:to and maxima:to to convert to/from bigfloat
objects. I'll look into this soon.
>
>> But a 2D FFT can be done using 1D FFts. You take the 1D FFT of each
>> row. From this matrix, take the FFT of each column. So something like
>> the following:
>>
>> r: map(fft, m);
>> r : map(fft, transpose(r));
>> transpose(r);
>>
> Hmm, I hadn't realized it was so simple. We could easily
> get the fft function to apply that to a matrix argument.
>
Yes. I have to check my references to make sure that that is correct,
however. :-)
Ray