Google Summer of Code 2008 Recap

| | Comments (2) | TrackBacks (0)
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.


0 TrackBacks

Listed below are links to blogs that reference this entry: Google Summer of Code 2008 Recap.

TrackBack URL for this entry: http://leto.net/mt/mt-tb.cgi/35

2 Comments

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...


Leave a comment

About this Entry

This page contains a single entry by Jonathan Leto published on September 1, 2008 11:18 AM.

Math::GSL 0.10 released to CPAN was the previous entry in this blog.

Sexy Bessel Functions with Chart::Clicker is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Screw you, spammers! Clicky Web Analytics