<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Math::GSL : Perl  GNU Scientific Library</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/" />
    <link rel="self" type="application/atom+xml" href="http://leto.net/code/Math-GSL/atom.xml" />
    <id>tag:leto.net,2008-04-26:/code/Math-GSL//2</id>
    <updated>2009-03-27T16:12:18Z</updated>
    <subtitle>use Math::GSL;</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.1</generator>

<entry>
    <title>Math::GSL 0.18 on CPAN</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2009/03/mathgsl-018-on-cpan.html" />
    <id>tag:leto.net,2009:/code/Math-GSL//2.182</id>

    <published>2009-03-27T07:11:10Z</published>
    <updated>2009-03-27T16:12:18Z</updated>

    <summary>Grab the latest Math::GSL to get these spiffy features and bugfixes:Made Math::GSL play nice with latest and greatest GSL 1.12Added swap() to Vector objects with tests and docsAdded p-norms to Vector objects via norm() and normalize()Added operator overloading so thatabs...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[Grab the latest Math::GSL to get these spiffy features and bugfixes:<br /><br /><ul><li>Made <a href="http://search.cpan.org/dist/Math-GSL/">Math::GSL</a> play nice with latest and greatest GSL <a href="http://www.gnu.org/software/gsl/NEWS">1.12</a></li><li>Added swap() to <a href="http://search.cpan.org/dist/Math-GSL/pod/Vector.pod">Vector</a> objects with tests and docs</li><li>Added p-<a href="http://en.wikipedia.org/wiki/Norm_%28mathematics%29">norms</a> to Vector objects via norm() and normalize()</li><li>Added operator overloading so that</li></ul><blockquote><blockquote><blockquote>abs $vector == $vector-&gt;norm <br /></blockquote></blockquote></blockquote><ul><li>Added as_vector() to <a href="http://search.cpan.org/dist/Math-GSL/pod/Matrix.pod">Matrix</a> and <a href="http://search.cpan.org/dist/Math-GSL/pod/MatrixComplex.pod">MatrixComplex </a>objects</li><li>Added inverse(), is_square(), det(),&nbsp; lndet(), zero() and identity() to Matrix objects</li><li>Added inverse(), is_square(), det(),&nbsp; lndet(), zero(), identity() and hermitian() to MatrixComplex objects</li><li>Added dot product to Matrix objects</li><li>Fixed various typos in documentation</li><li>Fixed warnings about overloaded operators in Matrix and <a href="http://search.cpan.org/dist/Math-GSL/pod/BLAS.pod">BLAS</a></li><li>Overloaded '==' and '!=' for MatrixComplex and Matrix objects</li><li>Fixed amd64 -fPIC compile failure</li><li>Added tests to Monte and refactored Sort tests</li><li>Refactored and improve error checking in callback interface</li><li>Fixed 'NaN' test failures (thanks CPANtesters!)<br /></li></ul>Enjoy!<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>Math::GSL 0.17_01 on CPAN</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2009/02/mathgsl-017-01-on-cpan.html" />
    <id>tag:leto.net,2009:/code/Math-GSL//2.177</id>

    <published>2009-02-22T22:15:45Z</published>
    <updated>2009-02-22T22:29:41Z</updated>

    <summary>Math::GSL is still in active development and we have been working hard to make sure that it is compatible with the most recent GSL, which is 1.12 released on Dec 16 2008. This release is mostly for CPANTesters to see...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[Math::GSL is still in active development and we have been working hard to make sure that it is compatible with the most recent <a href="http://www.gnu.org/software/gsl/">GSL</a>, which is <a href="http://www.gnu.org/software/gsl/NEWS">1.12 </a>released on Dec 16 2008. This release is mostly for CPANTesters to see what bugs they can shake out of it, but it contains these tasty features:<br /><br /><ul><li>Make Math::GSL play nice with GSL 1.12<br /></li><li>Added swap() to Vector objects with tests and docs</li><li>Added p-norms to Vector objects via norm() and normalize()</li><li>Added operator overloading so that : abs $vector == $vector-&gt;norm</li><li>Added as_vector() to Matrix and MatrixComplex objects</li><li>Added inverse(), is_square(), det(),&nbsp; lndet(), zero() and identity() to Matrix objects</li><li>Added inverse(), is_square(), det(),&nbsp; lndet(), zero(), identity() and hermitian() to MatrixComplex objects</li><li>Added dot product to Matrix objects</li><li>Fixed various typos in documentation</li><li>Fixed warnings about overloaded operators in Matrix and BLAS</li></ul>Enjoy!<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>Matrix Eigenvalues in Perl Don&apos;t Get Much Easier</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/12/matrix-eigenvalues-in-perl-don.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.169</id>

    <published>2008-12-25T19:53:25Z</published>
    <updated>2008-12-25T20:16:09Z</updated>

    <summary>The Matrix subsystem has really grown up in the last few days since the 0.16 release, including easy-to-use methods to calculate Matrix eigenvalues. All kinds of other methods are now available, like my $det1 = $A-&gt;det; # determinant my $det2...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="linearalgebra" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linearalgebra" label="linear algebra" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="math" label="math" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[The Matrix subsystem has really grown up in the last few days since the 0.16 release, including easy-to-use methods to calculate <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=commitdiff;h=c10bd60fb06cc43fbb9e8d2f731381d8d7071991">Matrix eigenvalues</a>. All kinds of other methods are now available, like 
<pre>
my $det1 = $A->det;      # determinant
my $det2 = abs $A;       # determinant

my $inv = $A->inverse;  
my @eigs = $A->eigenvalues;

my ($eigenvalues, $eigenvectors) = $matrix->eigenpair;
my ($eig1,$eig2) = @$eigenvalues;
my ($u,$v)       = @$eigenvectors;
</pre>
Compare this <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob;f=examples/matrix/nonsymmetric_eigen;h=83e1e26150f0dfa61798125b51f7afca51f6202a;hb=HEAD">new script</a> for calculating eigenvalues and eigenvectors of a nonsymmetric matrix to <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob;f=examples/matrix/nonsymmetric_eigen_old;h=490c69663f944421532eaca8431cc34c55e78630;hb=HEAD">the old version</a>. Yes, quite an improvement and quite pleasing to the eye now.

Note that <b>$A->eigenvalues;</b> returns a list of <b><a href="http://search.cpan.org/~jhi/Math-Complex/lib/Math/Complex.pm">Math::Complex</a></b> objects because in general the eigenvalues of a real matrix can be complex. Only if your matrix is <a href="http://mathworld.wolfram.com/SymmetricMatrix.html">symmetric</a> are you guaranteed real eigenvalues.]]>
        
    </content>
</entry>

<entry>
    <title>Math::GSL 0.16 - More features and more rigorous tests</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/12/mathgsl-016-more-features-and.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.164</id>

    <published>2008-12-15T00:26:06Z</published>
    <updated>2008-12-15T00:54:16Z</updated>

    <summary>I just pushed Math::GSL 0.16 to CPAN, it should be showing up here Real Soon Now, depending on how much traffic the dump trucks hit on the intertubes. Fixed RT#40947: configure_requires ExtUtils::PkgConfig bugOperator overloading for addition, multiplication and subtraction on Matrix...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[<div><div>I just pushed Math::GSL 0.16 to CPAN, it should be showing up <a href="http://search.cpan.org/~leto/Math-GSL/">here</a> Real Soon Now, depending on how much <a href="http://bp2.blogger.com/_C7Ojr4OIXWQ/R81GArKts2I/AAAAAAAAAIs/mxeUfWaaKDY/s1600-h/i-m-in-ur-internet-cloging-ur-tubes.jpg">traffic</a> the <a href="http://img.photobucket.com/albums/v323/trueneutral/InternetsTubes.jpg">dump trucks</a> hit on the <a href="http://themachineisus.files.wordpress.com/2008/07/the-internet-a-series-of-tubes.jpg">intertubes</a>. </div><div><br /></div><ul><li>Fixed <a href="http://rt.cpan.org/Public/Bug/Display.html?id=40947">RT#40947</a>: configure_requires ExtUtils::PkgConfig bug</li><li>Operator overloading for addition, multiplication and subtraction on Matrix objects (Thierry)</li><li>Fix an include bug in Histogram2D which caused the build to fail (Thierry)</li><li>Added reverse() and swap() methods to VectorComplex objects with tests and docs</li><li>as_list() and get() now work on VectorComplex objects</li><ul><li>as_list() returns a list of Math::Complex objects</li><li>get() returns a list of Math::GSL::Complex objects</li></ul><li>Math::GSL::Test::ok_status() now takes an optional message argument</li><li>Added <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob;f=KNOWN_BUGS;h=4ba19b06357411cba0d7585a338964c47098e1d6;hb=9105f6a5e45e5708f3534f5f4ce6a0544462f0f5">KNOWN_BUGS</a></li><li>Added Math::GSL::Test::is_status_ok()</li><li>New subsytems: <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob;f=pod/VectorComplex.pod;h=fc43d5b2b404f3089612b3b98c32fb9251361ecc;hb=9105f6a5e45e5708f3534f5f4ce6a0544462f0f5">VectorComplex</a> and <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob;f=pod/MatrixComplex.pod;h=ec9662df10921e8d344f638e05b77b43a41fe550;hb=9105f6a5e45e5708f3534f5f4ce6a0544462f0f5">MatrixComplex</a></li><li>Operator overloading for addition and subtraction with vectors</li><li>Added example: <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob;f=examples/matrix/nonsymmetric_eigen;h=490c69663f944421532eaca8431cc34c55e78630;hb=9105f6a5e45e5708f3534f5f4ce6a0544462f0f5">examples/matrix/nonsymmetric_eigen</a></li><ul><li>Shows how to find the eigenvalues of a nonsymmetric matrix</li></ul><li>Added copy() method to vectors</li><li>Improved Vector docs</li><li>Sped up vector dot products by 15x using BLAS function gsl_blas_ddot</li><ul><li>NOTE: using gsl_blas_ddot($x->raw,$y->raw) directly is still about 10 times faster than $x * $y due to error checking and function call overhead</li></ul><li>Separated POD and Perl code out of SWIG interface files, yay for proper syntax highlighting</li><li>Added stub test files for Heapsort, IEEEUtils, Multimin, Siman, Wavelet2D</li><li>All test files now keep track of how many tests should run</li></ul></div><div><br /></div> ]]>
        
    </content>
</entry>

<entry>
    <title>Back on track</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/12/back-on-track.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.162</id>

    <published>2008-12-08T00:06:55Z</published>
    <updated>2008-12-08T00:21:59Z</updated>

    <summary>I haven&apos;t been able to add code to Math::GSL since about a month because of a tricky bug I had with the build process. Not only was it tricky, it was well hidden and pretty stupid to fix once I...</summary>
    <author>
        <name>Thierry Moisan</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[I haven't been able to add code to Math::GSL since about a month because of a tricky bug I had with the build process. Not only was it tricky, it was well hidden and <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=commitdiff;h=1fdc43e5725e337e2dd0c2e7e0d2069335b62e29">pretty stupid to fix once I saw it</a>.<br /><br />Now that it's fixed I've been able to commit some code concerning <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=commitdiff;h=2960b90d4686cb4c48d4a1001390c6d38900110b">overloading operators + and - in Math::GSL::Matrix</a>. It's been tested and documented but it could still enjoy more documentation. End term exams are coming pretty fast to me so I won't finish overloading multiplication of matrices before one or two weeks. <br /><br />Ho and Math::GSL 0.16 should be out soon, stay tuned!<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>Math::GSL 0.15_05</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/12/mathgsl-015-05.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.157</id>

    <published>2008-12-05T09:15:51Z</published>
    <updated>2008-12-05T09:26:12Z</updated>

    <summary>I just pushed Math::GSL 0.15_05 to CPAN, which includes these fixes since 0.15_04 :  Fixed RT#40947: configure_requires ExtUtils::PkgConfig bug  Added reverse() method to VectorComplex objects with tests and docs as_list() and get() now work on VectorComplex objects as_list() returns a list of...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[I just pushed Math::GSL 0.15_05 to <a href="http://search.cpan.org/~leto/Math-GSL/">CPAN</a>, which includes these fixes since 0.15_04 : 
 <div><br /></div><div><ul><li>Fixed<a href="http://rt.cpan.org/Ticket/Display.html?id=40947"> RT#40947</a>: configure_requires ExtUtils::PkgConfig bug     </li><li><a href="http://leto.net/gitweb/?p=Math-GSL.git;a=commitdiff;h=b10e5f96de88645a377eab70ea75e52d7e31b5ba">Added reverse()</a> method to VectorComplex objects with tests and docs </li><li>as_list() and get() now work on VectorComplex objects </li><ul><li>as_list() returns a list of Math::Complex objects </li><li>get() returns a list of Math::GSL::Complex objects</li></ul></ul><div><ul><li><a href="http://leto.net/gitweb/?p=Math-GSL.git;a=commitdiff;h=e266776f43e33c60cc06a5e750f800d9d0a8c7f8">Added Math::GSL::Test::is_status_ok()</a></li><li>Math::GSL::Test::ok_status() now takes an optional message argument </li></ul><div><br /></div><div>Enjoy!</div></div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Updates and Promises</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/11/updates-and-promises.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.126</id>

    <published>2008-11-30T23:38:08Z</published>
    <updated>2008-12-01T00:25:08Z</updated>

    <summary>Yes, it has been quiet here but development on Math::GSL has steadily continued behind-the-scenes. I just pushed a dev release (0.15_04) to CPAN, it should be hitting a mirror near you soon. If the CPANTesters don&apos;t find anything horribly wrong...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="update" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[<div>Yes, it has been quiet here but development on Math::GSL has steadily continued behind-the-scenes. I just pushed a dev release (0.15_04) to CPAN, it should be hitting a mirror near you soon. If the <a href="http://testers.cpan.org">CPANTesters</a> don't find anything horribly wrong with it, it will probably become 0.16. Some new features of 0.16 will be:</div><div><br /></div><div><ul><li>New subsytems: <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob_plain;f=swig/VectorComplex.i;hb=HEAD">VectorComplex</a> and <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob_plain;f=swig/MatrixComplex.i;hb=HEAD">MatrixComplex</a></li><li>Operator overloading for addition and subtraction with vectors</li><li>Added example: examples/matrix/nonsymmetric_eigen</li></ul></div><div><div>        Shows how to find the eigenvalues of a nonsymmetric matrix</div></div><div><ul><li>Added copy() method to vectors</li><li> Improved Vector docs</li><li>Sped up vector dot products by 15x using BLAS function gsl_blas_ddot</li></ul></div><div>        NOTE: using gsl_blas_ddot($x->raw,$y->raw) directly is still about 10 times faster </div><div>              than $x * $y due to error checking and function call overhead</div><div><ul><li>Separated POD and Perl code out of SWIG interface files, yay for proper syntax highlighting</li></ul></div><div><ul><li>Added stub test files for Heapsort, IEEEUtils, Multimin, Siman, Wavelet2D</li><li>All test files now keep track of how many tests should run and other important infrastructure changes</li></ul></div><div><br /></div><div>Only a few of the changes are user-facing but they are important in terms of the long-term development and health of Math::GSL. </div><div><br /></div><div>While I have been making these back-end changes I have been prototyping a web-based interface to Math::GSL using <a href="http://jQuery.com">jQuery</a>. I have many functional parts but no coherent interface that I am willing to inflict on users. But I promise you that soon you will be able to use Math::GSL via your browser and bypass the whole "what-do-you-mean-i-have-to-compile-it" issue. </div><div><br /></div> ]]>
        
    </content>
</entry>

<entry>
    <title>Complex Eigenvalues with Math::GSL</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/11/complex-eigenvalues-with-mathg.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.121</id>

    <published>2008-11-16T01:09:27Z</published>
    <updated>2008-11-16T01:36:31Z</updated>

    <summary>After a question arose recently about finding complex eigenvalues of non-symmetric matrices, I wrote this example to show how it can be done with Math::GSL. The current example is called examples/matrix/nonsymmetric_eigen in the Math::GSL source, which will be in the 0.16 Math::GSL...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="complex" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="linearalgebra" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[After a question arose recently about finding complex eigenvalues of non-<a href="http://mathworld.wolfram.com/SymmetricMatrix.html">symmetric matrices</a>, I wrote <a href="http://leto.net/gitweb/?p=Math-GSL.git;a=blob_plain;f=examples/matrix/nonsymmetric_eigen;hb=2b9e985f4bd69de0f772dfe8096c3cdc36dcb181">this example</a> to show how it can be done with Math::GSL. The current example is called <span class="Apple-style-span" style="font-weight: bold;">examples/matrix/nonsymmetric_eigen</span> in the Math::GSL source, which will be in the 0.16 Math::GSL release. It uses the <span class="Apple-style-span" style="font-weight: bold; ">gsl_eigen_nonsymmv()</span> function to do all the hard work, the rest is twiddling complex numbers. The documentation for this can be found with<span class="Apple-style-span" style="font-weight: bold; "> perldoc Math::GSL::Eigen</span> or <a href="http://search.cpan.org/~leto/Math-GSL-0.14/lib/Math/GSL/Eigen.pm">here</a>.(The HTML rendering of the POD needs some work...) You can read the original C documentation for this function <a href="http://www.gnu.org/software/gsl/manual/html_node/Real-Nonsymmetric-Matrices.html">here.</a><div><div><br /></div><div> It is a well known theorem of linear algebra that symmetric matrices can have only real eigenvalues. Thus it is much easier to find eigenvalues of symmetric matrices because there is no possibility of complex numbers arising. You can do this with <a href="http://search.cpan.org/dist/Math-MatrixReal/">Math::MatrixReal</a>, which is written in pure-Perl.</div><div><br /><div><div>The output of <span class="Apple-style-span" style="font-weight: bold;">examples/matrix/nonsymmetric_eigen</span> looks like:</div><div><br /></div><div><div>Finding eigenvalue/eigenvectors for</div><div>[ 0  -1 ]</div><div>[ 1   0 ]</div><div><br /></div><div>Eigenvectors:</div><div><br /></div><div>u = (0.707106781186547,-0.707106781186547i)</div><div>v = (0.707106781186547,0.707106781186547i)</div><div><br /></div><div>Eigenvalues:</div><div><br /></div><div>lambda_0 = i</div><div>lambda_1 = -i</div><div><br /></div><div><br /></div><div>By the way, sqrt(2)/2 = 0.707106...</div><div><br /></div><div>I am not quite happy with how long the program is, mainly because I have not written a Perlish interface around Complex Vectors and Matrices yet, so it is all in that script right now. The stringification could be built into the object and therefore reduce the length of that code dramatically.</div></div></div></div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Inside Look of Math::GSL</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/11/inside-look-of-mathgsl.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.120</id>

    <published>2008-11-14T21:49:48Z</published>
    <updated>2008-11-14T22:26:12Z</updated>

    <summary>SWIG saves the day.</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="swig" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mathgsl" label="mathgsl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swig" label="swig" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[<div><div>Here is a breakdown of how many lines of code (roughly) are in different languages in the Math::GSL codebase:</div><div><span class="Apple-style-span" style="font-weight: bold;"><br /></span></div><ul><li><span class="Apple-style-span" style="font-weight: bold;">280889</span> lines - <a href="http://perldoc.perl.org/perlxs.html">XS</a> ( C-like Perl internals autogenerated by <a href="http://www.swig.org" style="text-decoration: underline; ">SWIG</a>)</li><li>60181 lines  - Total Perl (generated by <a href="http://www.swig.org" style="text-decoration: underline; ">SWIG</a>)</li><li> 22941  lines- Hand-written Perl </li><ul><li> 8617 lines - Tests</li></ul><ul><li>13731 lines - <a href="http://perldoc.perl.org/perlpod.html">POD</a> (this actually includes some Perl implementation, probably &lt;5%). Much of this was autogenerated from the <a href="http://www.gnu.org/software/gsl/manual/html_node/index.html">GSL C documentation</a> and reformatted, but it stills needs work, especially in making the POD render to HTML in a more pleasant way.</li></ul><li><span class="Apple-style-span" style="font-weight: bold;">1112</span>   lines - <a href="http://www.swig.org" style="text-decoration: underline; ">SWIG</a></li></ul></div><div><div>The reason why Math::GSL requires something like SWIG becomes very apparent. The SWIG interface files are roughly 1/280th the length of the raw XS source code. No reasonable  person would be hacking on Perl internals, but not even a reasonable Perl hacker wants to write all that error checking boilerplate cruft. Thanks <a href="http://www.swig.org">SWIG</a>!</div><div><br /></div><div>This was made possible by ripping all Perl code out of the SWIG interface files and putting them in the pod/ directory. It is not strictly POD but a simple naming scheme was key and the majority of the files do happen to be POD, so whatev. And now vim correctly syntax highlights the files! I think there is something to be said for sticking to one language per file. </div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Post-Mentor-Summit Wrap Up</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/11/postmentorsummit-wrap-up.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.92</id>

    <published>2008-11-01T13:20:20Z</published>
    <updated>2008-11-01T13:56:12Z</updated>

    <summary>I took a bit of a break after releasing Math::GSL 0.14 and tried not to stare at a screen too much  during the GSOC08 conference, when I could be interacting with open source developers from around the world IRL. I...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="mentorsummit" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="update" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mentorsummit" label="mentorsummit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mentorsummit08" label="mentorsummit08" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[I took a bit of a break after releasing Math::GSL 0.14 and tried not to stare at a screen too much  during the GSOC08 conference, when I could be interacting with open source developers from around the world IRL. I met developers from <a href="http://git.or.cz">Git</a>, <a href="http://wiki.xmms2.xmms.se/wiki/Main_Page">Xmms2</a>, <a href="http://www.videolan.org">VLC</a>, <a href="http://www.php.net">PHP</a>, <a href="http://zikula.org/">Zikula</a>, <a href="http://www.openafs.org">OpenAFS</a>, <a href="http://www.boost.org/">Boost</a>, <a href="http://jikesrvm.org/">Jikes RVM</a>, <a href="http://www.squeak.org/">Squeak</a>, <a href="http://musicbrainz.org/">MusicBrainz</a>, <a href="http://www.worldforge.org/">Worldforge</a>, <a href="http://www.minix3.org/">Minix3</a>, the list goes on. People shared many ideas about making sustainable open source projects, getting and keeping members in your community and dealing with "troublesome" members.  Daniel Svensson from Xmms2 also showed me some git-fu relating to rebasing.<div><br /></div><div>But that doesn't mean that Math::GSL development has come to a halt! Since 0.14 Thierry added operator overloading for addition in Vector. This sparked my interest and I then did subtraction. The current code will vectorize operations that you learn "don't make sense" in grade school, such as:<span class="Apple-style-span" style="font-weight: bold;"> $</span><span class="Apple-style-span" style="font-family: '-editor-proxy';"><span class="Apple-style-span" style="font-weight: bold;">v - 5</span></span> , where <span class="Apple-style-span" style="font-weight: bold;">v</span> is a vector. Math::GSL will go ahead and subtract 5 from every element in $<span class="Apple-style-span" style="font-weight: bold; ">v</span>. You can also do <span class="Apple-style-span" style="font-weight: bold; ">2 + $v</span> and you will get a new vector where 2 has been added to each element of $<span class="Apple-style-span" style="font-weight: bold; ">v</span>.</div><div><br /></div><div><br /></div><div>Also, I reorganized the directory structure so that all SWIG interface files are now in the <span class="Apple-style-span" style="font-weight: bold;">swig/ </span>subdirectory, instead of clogging up the root directory. All SWIG-generated XS code and object files are thrown in there as well. This should make the Math::GSL codebase easier to navigate. </div><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>Math::GSL 0.14</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/10/mathgsl-014.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.85</id>

    <published>2008-10-22T15:09:31Z</published>
    <updated>2008-10-23T03:04:24Z</updated>

    <summary>Get it here: http://search.cpan.org/~leto/Math-GSL-0.14/ Changes in 0.14:    - Chebyshev Series Approximation, with tests and docs    - Examples and new documentation in Statistics, as well as tests (Thierry)    - Bugfixes relating to compiling on 64bit Red Hat Linux, reported by Michael Roberge    -...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[Get it here: <a href="http://search.cpan.org/~leto/Math-GSL-0.14/">http://search.cpan.org/~leto/Math-GSL-0.14/ </a><div><br /></div><div>Changes in 0.14:</div><div><br /></div><div><div>    - Chebyshev Series Approximation, with tests and docs</div><div>    - Examples and new documentation in <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Statistics.pm">Statistics</a>, as well as tests (Thierry)</div><div>    - Bugfixes relating to compiling on 64bit Red Hat Linux, reported by Michael Roberge</div><div>    - Improved <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/FFT.pm">FFT</a>, <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Deriv.pm">Deriv</a>, <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Integration.pm">Integration</a>, <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Chebyshev.pm">Chebyshev</a>, <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Combination.pm">Combination</a> and <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Roots.pm">Roots</a> docs</div><div>    - Documentation for <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Test.pm">Math::GSL::Test</a> </div><div>    - Improved introduction examples in <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL.pm">Math::GSL</a></div><div>    - Improved <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Min.pm">Minimization</a> subsystem tests, but it is not functional</div><div>    - Added <a href="http://github.com/leto/math--gsl/tree/master/examples/fft/forward_real">examples/fft/forward_real</a></div><div>    - Added <a href="http://github.com/leto/math--gsl/tree/master/examples/deriv/basic">examples/deriv/basic</a></div><div><br /></div><div>        This shows the simple fact that d/dx(sin(x)) = cos(x)</div><div><br /></div><div>    - Added <a href="http://github.com/leto/math--gsl/tree/master/examples/sf/erfc_check">examples/sf/erfc_check</a> (thanks to Keith Lofstrom)</div><div><br /></div><div>        Script which tests the erfc() special function against computing</div><div>        the integral definition with gsl_integration_qagiu()</div><div><br /></div><div>    - Added <a href="http://github.com/leto/math--gsl/tree/master/examples/vector/speed">examples/vector/speed </a></div><div>    </div><div>        This shows a considerable performance boost using <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/Vector.pm">Math::GSL::Vector</a>s</div><div>        instead of List::Util when searching for the min and max elements of</div><div>        large sets of random numbers.</div><div><br /></div><div>    - Fixed return signature of gsl_deriv_* functions to return a flat list</div><div>    - Fixed some failing tests relating to  -Duselongdouble (Sisyphus)</div><div>    - Fix location of shared objects (Sisyphus)</div><div>    - Added raw() method to <a href="http://search.cpan.org/~leto/Math-GSL/lib/Math/GSL/RNG.pm">RNG</a> objects</div><div><br /></div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Math::GSL on GitHub</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/10/mathgsl-on-github.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.83</id>

    <published>2008-10-22T04:30:32Z</published>
    <updated>2008-10-22T05:03:04Z</updated>

    <summary>I have created a GitHub mirror of the Math::GSL git repo, hopefully this will make it easier for developers to join the project and I will get to see why people like GitHub so much.Public Clone URL:git://github.com/leto/math--gsl.gitI like that it automatically creates...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="git" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[I have created a<a href="http://github.com/leto/math--gsl/tree/master"> GitHub</a> mirror of the Math::GSL git repo, hopefully this will make it easier for developers to join the project and I will get to see why people like GitHub so much.<div><br /></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: helvetica; line-height: 18px; "><table style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: inherit; line-height: 1.4em; float: left; max-width: 48em; "><tbody style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><td class="label" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(136, 136, 136); padding-right: 0.25em; vertical-align: top; ">Public Clone URL:</td><td style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; "><a href="git://github.com/leto/math--gsl.git" class="git_url_facebox" rel="#git-clone" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4em; color: rgb(65, 131, 196); text-decoration: none; ">git://github.com/leto/math--gsl.git</a></td></tr></tbody></table><br /></span></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: helvetica; line-height: 18px;"><br /></span></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: helvetica; line-height: 18px;">I like that it automatically creates a "donate" link via <a href="http://pledgie.org/">Pledgie</a>. Please consider <a href="http://pledgie.org/campaigns/1884">donating to Math::GSL today</a> if you enjoy using it!</span></div>]]>
        
    </content>
</entry>

<entry>
    <title>Math::GSL Podcast from PDX.pm</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/10/mathgsl-podcast-from-pdxpm.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.81</id>

    <published>2008-10-18T16:47:05Z</published>
    <updated>2008-10-18T16:52:36Z</updated>

    <summary> Here you can find my Scientfic Computing with Math::GSL Podcast from PDX.pm.( Stream, Download) In the talk I compare PDL and Math::GSL, talk about the Google Summer of Code 2008, and show off some of the subsystems that are currently working....</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="pdx.pm" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="podcast" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[ <div>Here you can find my Scientfic Computing with Math::GSL <a href="http://pdxpm.podasp.com/archive.html?pname=meetings.xml" style="text-decoration: underline; ">Podcast</a> from PDX.pm.( <a href="http://podasp.com/episodes/P/PD/PDX.pm/2385/20080910__MathGSL_Scientific_Comp__2385.mp3">Stream</a>, <a href="http://podasp.com/episodes/P/PD/PDX.pm/2385/20080910__MathGSL_Scientific_Comp__2385.mp3">Download</a>) In the talk I compare PDL and Math::GSL, talk about the Google Summer of Code 2008, and show off some of the subsystems that are currently working. I field some questions from the audience about whether Math::GSL does symbolic computing or parrallelized/vectorized computing (it doesn't, at least yet) and how exactly I turn Perl subroutine references into C function pointers. If you look at the presentation slides <a href="http://leto.net/gitweb/?p=presentations.git;a=blob_plain;f=ScientificComputingWithPerlAndMathGSL/pres.pdf;hb=90f668796926415ebfb259740216af86a50ef642" style="text-decoration: underline; ">here </a>while you listen, it is almost like being there!</div>]]>
        
    </content>
</entry>

<entry>
    <title>Math::GSL 0.13_03 - More stuff!</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/10/mathgsl-013-03-more-stuff.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.80</id>

    <published>2008-10-17T03:16:12Z</published>
    <updated>2008-10-18T17:03:45Z</updated>

    <summary>I&apos;ve just sent another dev release off to CPAN, 0.13_03 to test the recent Build changes that were necessary to get AMD64 boxen to correctly compile. It turns out that they really need the &quot;-fPIC&quot; flag at compilation and link...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[<div>I've just sent another dev release off to CPAN, 0.13_03 to test the recent Build changes that were necessary to get AMD64 boxen to correctly compile. It turns out that they really need the "-fPIC" flag at compilation and link time or else stuff blows up:</div><div><br /></div><div><span class="Apple-style-span" style="border-collapse: collapse; color: rgb(80, 0, 80); ">usr/bin/ld: BLAS_wrap.o: relocation R_X86_64_32S against `a local<br /> symbol' can not be used when making a shared object; recompile with -fPIC<br /> BLAS_wrap.o: could not read symbols: Bad value<br />collect2: ld returned 1 exit status<br />error building blib/arch/auto/Math/GSL/BLAS/<wbr>BLAS.so file from<br /> 'BLAS_wrap.o' at inc/GSLBuilder.pm line 99.</span></div><div><br /></div><div><br /></div><div>This link with go active sometime tomorrow: </div><div><br /></div><div><a href="http://search.cpan.org/~leto/Math-GSL-0.13_03/">http://search.cpan.org/~leto/Math-GSL-0.13_03/</a></div><div><br /></div><div>New stuff since 0.13_02:</div><div><br /></div><ul><li>AMD64 Build fixes</li><li>Improved FFT docs</li><li>Improved Math::GSL::Test docs</li></ul><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>New Developer Release : Math::GSL 0.13_02</title>
    <link rel="alternate" type="text/html" href="http://leto.net/code/Math-GSL/2008/10/new-developer-release-mathgsl.html" />
    <id>tag:leto.net,2008:/code/Math-GSL//2.77</id>

    <published>2008-10-12T20:54:08Z</published>
    <updated>2008-10-12T20:55:58Z</updated>

    <summary>Please test this out and let me know if anything goes *boom*:http://search.cpan.org/~leto/Math-GSL-0.13_02/Changes since 0.12:   - Chebyshev Series Approximation, with tests and docs   - Improved Deriv, Integration, Chebyshev, Combination and Roots docs   - Improved introduction examples in Math::GSL   - Improved Minimization...</summary>
    <author>
        <name>Jonathan Leto</name>
        
    </author>
    
        <category term="release" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://leto.net/code/Math-GSL/">
        <![CDATA[<span class="Apple-style-span" style="border-collapse: collapse; color: rgb(0, 0, 0); ">Please test this out and let me know if anything goes *boom*:</span><div><span class="Apple-style-span" style="border-collapse: collapse; color: rgb(0, 0, 0); "><br /><a href="http://search.cpan.org/~leto/Math-GSL-0.13_02/" target="_blank" style="color: rgb(0, 0, 204); ">http://search.cpan.org/~leto/<wbr>Math-GSL-0.13_02/</a><br /><br /><br />Changes since 0.12:<br /><br />   - Chebyshev Series Approximation, with tests and docs<br />   - Improved Deriv, Integration, Chebyshev, Combination and Roots docs<br />   - Improved introduction examples in Math::GSL<br />   - Improved Minimization subsystem tests, but it is not functional<br />   - Added example/deriv/basic<br /><br />       This shows the simple fact that d/dx(sin(x)) = cos(x)<br /><br />   - Added example/sf/erfc_check (thanks to Keith Lofstrom)<br /><br />       Script which tests the erfc() special function against computing<br />       the integral definition with gsl_integration_qagiu()<br /><br />   - Added example/vector/speed<br /><br />       This shows a considerable performance boost using Math::GSL::Vectors<br />       instead of List::Util when searching for the min and max elements of<br />       large sets of random numbers.<br /><br />   - Fixed return signature of gsl_deriv_* functions to return a flat list<br />   - Fix location of shared objects (Sisyphus)<br />   - Added raw() method to RNG objects</span> </div>]]>
        
    </content>
</entry>

</feed>
