Hi Liam,
Yes, I've seen the tests, and am working on them and the examples. I'll commit something in the weekend, hopefully together with the real FFTs. That would make at least the FFT part of GSLL complete. But I'd still like to make some wrappers that make the FFT less awkward/more manageable, in the sense of automatically determining whether to use the real or complex FFT, and the radix-2 or mixed-radix ones.
In case you're wondering about why the real and complex FFTs are separated, and not just methods that dispatch on the element type of the marray, this has to do with the fact that the FFT of a real array is a complex array, but GSL doesn't store it that way. This poses no problem for the implementation, however, just a little bit of thought on my part. I'll have this sorted out and implemented in a few days.
If you want to work on the tests yourself, that's fine as well, but I thought that since I'm working on the whole FFT implementation anyway, I might as well finish the complete thing.
-Sumant
On Wed, Oct 28, 2009 at 11:07:50PM -0400, Liam Healy wrote:
Sumant,
Thanks for your work. This is a much-awaited addition. I will look it over this weekend with the idea of merging it into master; there shouldn't be any reason not to but I do run the tests on SBCL and CCL prior to committing to master just to make sure there are no regressions.
I've been trying to make it a practice to port the GSL tests to GSLL. These tests are obtained by running "make check" when building GSL. The tests for FFT look like they are in fft/test*.c. I will look at porting those tests, but if you have any insight/tips in doing that port, I'd appreciate your ideas.
Liam
On Mon, Oct 26, 2009 at 7:54 PM, Sumant Oemrawsingh soemraws@xs4all.nl wrote:
Hey guys,
As discussed on #lisp with LiamH, I have pushed a branch containing some preliminary stuff to get GSL's FFTs working. Unsurprisingly, the branch is called fast-fourier-transform, and should actually be easily merged with master without causing things to break. I just thought to make a branch out of it in case I totally, completely and utterly break stuff, since these are my first contributions to GSLL and my first non-trivial experience with git.
What is implemented: All complex FFT (double and single floats) are implemented.
What works/is tested: radix 2 and mixed radix stuff is working and tested with the examples in the manual. I will push the examples translated to lisp as well when I clean it up.
What isn't tested: The decimation-in-frequency functions are implemented, but I have no idea what they are supposed to do.
Over the next days, I will be implementing the real transforms as well, test all the functions with respect to their C counterparts and finally make some nicer wrapper functions around them (unless people are radically opposed to that).
Thanks, Sumant Oemrawsingh (Sikander on #lisp)
Gsll-devel mailing list Gsll-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/gsll-devel