FFT Multiplication (HP-48G/GX/G+)
|
02-16-2014, 01:51 AM
Post: #25
|
|||
|
|||
RE: FFT Multiplication (HP-48G/GX/G+)
(02-15-2014 11:53 PM)Gerson W. Barbosa Wrote: It's ok now, thanks! Now I get 22.25 seconds for two 64-element arrays, close to what you've reported. Just one more question: does your SysRPL do a List->Array conversion at the end? (I don't understand the code, but it appears to do that from the behavior of your previous compiled program. My latest HP-48GX version, as of yesterday, uses lists only once, to do the Hadamard multiplication. This has improved performance significantly. Would it do the same in SysRPL? (Assuming of course your SysRPL version corresponds to the older User-RPL version).The SySRPL version doesn't use lists for the array/vector at all. Starting after the 2nd fft call the result vector is dissolved during the multiplication loop. After that loop the input vector for the ifft call is generated via XEQ>VEC. After the ifft call the result vector is dissolved again during the rounding/cutting loop. Following that loop, the stack contains a meta object of sizeA+sizeB entries (SysRPL version). The final loop always works on the first two stack levels (elements n and n+1) of the meta object, and finally rotates out the level 1 ob. Since the meta ob will be worked on from the end to the front, one final rotation is needed after the loop to retain the correct order of elements. The conversion to a vector at the end of the program takes about 81ms for a 256 elements meta ob, so that's rather negligible. Cheers -- Ray |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 3 Guest(s)