What an amazing summer! I really couldn't have imagined all the things that I would learn or teach, the obstacles that would make it challenging or the people that I would meet.

Thierry Moisan submitted the Math::GSL proposal that was chosen by The Perl Foundation for one of the five slots that we received. It was well-written and organized, but I reordered some of the milestones, pushing more difficult subsystems to the end so that they wouldn't stall development. Thierry made 226 git commits during GSOC08, which ranged from tests, POD documentation, SWIG typemaps and Perl implementation. He is mostly responsible for an immense amount of tests and documentation in the BLAS, Linalg, Matrix and Fit subsystems. Thierry also wrote a function graphing program using perl/Tk, which is in the "examples" directory of the distribution.

I live in Portland and Thierry is in Quebec City, so we mostly communicated through gchat, email and git commit messages, which seemed pretty effective. Public mailing lists like pdx-pm and swig-user were also helpful, as well as all the feedback I got when I gave a talk featuring Math::GSL at the Advanced Topics Portland Linux User Group (ATPLUG).

GSOC08 really provided the impetus to make Math::GSL a reality. I had a prototype (read: hackish script) that implemented only the Special Functions of GSL in 2000 and then it just sat around until Thierry's proposal.

As of the end of GSOC08, 41/48 of the Math::GSL subsystems were fully functional. The few remaining subsystems required callbacks, which were only partially implemented. As of this writing though, I have cracked the case and started to fully implement the remaining subsystems with Thierry. Numerical derivatives and integration (Deriv and Integration) are already supported.

This summer has also spawned two mailing lists, the math-gsl-dev google group and the perl-scientific-computing group. The first is for Math::GSL development and usage in particular, the second is for a broader audience. I envision Math::GSL as only the beginning of a suite of modules (or a custom Perl distribution) that enable scientists to "do science" in a quick and efficient way with Perl. If this sounds interesting, please come join and start some gossip!

I believe that Thierry grew tremendously as a developer, he became proficient using git and doing advanced vim hackery as well being introduced to new programming concepts (like typemaps) and new libraries (Tk). Knowing that I helped introduce a new member to the open source community while hacking on something cool (and making it work!) is the best payment that I could get. That and maybe a tshirt.

Thierry Moisan submitted the Math::GSL proposal that was chosen by The Perl Foundation for one of the five slots that we received. It was well-written and organized, but I reordered some of the milestones, pushing more difficult subsystems to the end so that they wouldn't stall development. Thierry made 226 git commits during GSOC08, which ranged from tests, POD documentation, SWIG typemaps and Perl implementation. He is mostly responsible for an immense amount of tests and documentation in the BLAS, Linalg, Matrix and Fit subsystems. Thierry also wrote a function graphing program using perl/Tk, which is in the "examples" directory of the distribution.

I live in Portland and Thierry is in Quebec City, so we mostly communicated through gchat, email and git commit messages, which seemed pretty effective. Public mailing lists like pdx-pm and swig-user were also helpful, as well as all the feedback I got when I gave a talk featuring Math::GSL at the Advanced Topics Portland Linux User Group (ATPLUG).

GSOC08 really provided the impetus to make Math::GSL a reality. I had a prototype (read: hackish script) that implemented only the Special Functions of GSL in 2000 and then it just sat around until Thierry's proposal.

As of the end of GSOC08, 41/48 of the Math::GSL subsystems were fully functional. The few remaining subsystems required callbacks, which were only partially implemented. As of this writing though, I have cracked the case and started to fully implement the remaining subsystems with Thierry. Numerical derivatives and integration (Deriv and Integration) are already supported.

This summer has also spawned two mailing lists, the math-gsl-dev google group and the perl-scientific-computing group. The first is for Math::GSL development and usage in particular, the second is for a broader audience. I envision Math::GSL as only the beginning of a suite of modules (or a custom Perl distribution) that enable scientists to "do science" in a quick and efficient way with Perl. If this sounds interesting, please come join and start some gossip!

I believe that Thierry grew tremendously as a developer, he became proficient using git and doing advanced vim hackery as well being introduced to new programming concepts (like typemaps) and new libraries (Tk). Knowing that I helped introduce a new member to the open source community while hacking on something cool (and making it work!) is the best payment that I could get. That and maybe a tshirt.

I am trying to find some help with Math::GSL::FFT or DFT.

Sorry if this is not the place to post this message.

The problem that I am having is I don't know how to use(call) FFT or DFT? & how can I calculate the Inverse of the FT?

Is the FFT output composed of Real and Complex numbers or only Real numbers?

Could you please help me with some information on how to use them? could you also please send me some examples?

Thank you ever so much, Renata

Currently Math::GSL only supports FFT of real numbers. Complex number should be supported in the future, but I am hitting some snags implementing some complex number routines. The size of your input data must be a power of 2 to utilize the "Fast Fourier Transform".

A good place to start learning about how GSL does real FFTs is here:

http://www.gnu.org/software/gsl/manual/html_node/Overview-of-real-data-FFTs.html

For a simple example:

#!/usr/bin/perl -w

use strict;

use Math::GSL::FFT qw/:all/;

use Math::GSL qw/:all/;

use Math::GSL::Errno qw/:all/;

my $data = [ (0) x 5, (1) x 22, (0) x 5 ];

my ($status, $fft ) = gsl_fft_real_radix2_transform ($data, 1, 32);

Now $fft is an array reference of the FFT data.

I hope this helps...