Comments about FFT PATCH ready



Stavros Macrakis wrote:
> On Tue, Sep 1, 2009 at 5:59 PM, ?iga Lenar?i? <ziga.lenarcic at gmail.com
> <mailto:ziga.lenarcic at gmail.com>> wrote:
>
>     ...On a side note, I've used maxima's $timer function and found
>     out (by
>     following internal ?forward\-fft and maxima's 'float' functions) that
>     time taken by conversion of data is 10x bigger than that of internal
>     numerical fft routine which works on double-float arrays. Each maxima
>     number (represented by mplus expression if complex) is split into two
>     double-float numbers with (risplit ($float maxima-number)) - and this
>     is where most of the time is spent.
>
>
> risplit is the general routine for arbitrary symbolic expressions.
It doesn't seem too expensive right now, but complex-number-p is
probably better.  Some profile results (using the new version):

   Consed |   Calls | Secs | Sec/Call |  Bytes/C. | Name:
-----------------------------------------------------------------------
3,276,688 |       1 | .230 |  0.23000 | 3,276,688 | FFT-ARRAYS->MLIST
  655,392 |       1 | .060 |  0.06000 |   655,392 | MLIST->FFT-ARRAYS
  131,072 |  16,384 | .030 |  0.00000 |         8 | RISPLIT
1,048,624 |       1 | .020 |  0.02000 | 1,048,624 | FORWARD-FFT
      672 |       1 | .010 |  0.01000 |       672 | FFT-DIF-INTERNAL
        0 |       1 | .000 |  0.00000 |         0 | FFT-BIT-REVERSE
        8 |       1 | .000 |  0.00000 |         8 | $FFT
       24 |       1 | .000 |  0.00000 |        24 | FFT+IFFT-COMMON
-------------------------------------------------------------------
5,112,480 |  16,391 | .350 |          |           | Total


>
> There is probably a more logical place to put complex-number-p and
> complexify than in ellipt.lisp....
That's an historical artifact because those routines were originally
written to support things in ellipt.lisp.   We should move them to a
more general location, now that they've been expanded and enhanced and
used in more places.

Ray