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