## A Month of Math Software – April 2013

As I type this, the sun is shining (finally!) and the skies are blue. You’d think that it would be difficult to concentrate on writing this Month’s mathematical software round-up but it has been such an interesting month that it turned out to be a breeze. Thanks to everyone who submitted news items for this month’s review, your feedback and generosity is greatly appreciated–I would have given up long ago without it.

If you have any news items for next month’s issue, please let me know via the usual channels. Click here for the Month of Math Software Archives.

**Things that are a bit like MATLAB**

- Rene grothmann’s free Euler Math Toolbox is so frequently updated that it almost always features in these software round-ups. The project is now at version 22.1 and it now others support for Python among other things. See what’s new by clicking on http://euler.rene-grothmann.de/Programs/Changes.html
- A new minor release of Scilab, the free MATLAB-like system from Scilab Enterprises, is now available. To see what’s new in version 5.4.1, head over to https://www.scilab.org/community/news/20130402

**Things written for MATLAB**

- GAGA: GPU Accelerated Greedy Algorithms for Compressed Sensing is
*“a software package for solving large compressed sensing problems with millions of unknowns in fractions of a second by exploiting the power of graphics processing units”.*It saw its first ever release in April. - Version 3.4.3.3481 of the Multiprecision Computing Toolbox for MATLAB was released in April bringing several enhancements including the addition of the incomplete gamma function, improvement to the accuracy of eigensolvers and speed up of determinant computations.

**Spreadsheets**

- One of the
**most famous spreadsheet errors of all time**was unearthed this month. I’ll leave the explaining to the BBC and New Scientist. - Gnumeric is the free spreadsheet program from the GNOME Office project and April saw it updated to version 1.12.2 Updates include a set of new computational functions, fixes to various file import tools and a new font selector.

**Graphs and Plotting**

- GNUPlot is a free, open source plotting package that’s been around for over 25 years. It has been ported to almost every computer system known to man including Ye Olde Windows Mobile, Android and Raspberry Pi along with all of the platforms you’d usually expect. April 2013 saw version 4.6.3 and the list of changes is at http://www.gnuplot.info/announce_4.6.3.txt
- DISLIN is a plotting library for C, Fortran 77 and Fortran 90/95 and is also callable from several other languages including Perl,Python and Java. Developed by the Max Plank Institute for Solar System Research, DISLIN has just hit version number 10.3.2. Take a look at the new goodness here.

**Numerical libraries**

- The 2013 version of the HSL Software Library is now available. The full list of changes, additions and improvements is available at http://www.hsl.rl.ac.uk/changes.html

**Python**

It’s been a big month for mathematical and scientific software in Python with several releases of note.

- After 7 months of work, The SciPy team have unveiled version 0.12.0. The full list of updates is at http://sourceforge.net/projects/scipy/files/scipy/0.12.0/ but standout features for me are a Basin Hopping Global Optimisation routine (never heard of that algorithm but sounds interesting), the ability to inspect the contents of MATLAB .mat files without actually reading them to memory and documented BLAS and LAPACK low-level interfaces.
- According to its website, numexpr
*“evaluates multiple-operator array expressions many times faster than NumPy can.”*In other words, numexpr is one way to get Python code going faster. Something that I didn’t realise until I wrote this entry is that it supports the high performance Intel Vector Math Library (VML). April saw a release to version 1.4.2 with the new stuff listed at https://code.google.com/p/numexpr/wiki/ReleaseNotes - Pweave is a scientific report generator and a literate programming tool for Python, inspired by Sweave for R. Version 0.21.2 of Pweave was released earlier this month — take a look at the release notes for details of what’s new. Thanks to @mpastell for the news.
- The IPython (Interactive computing in Python) team have released a bugfix update. The details of version 0.13.2 are in the release notes.
- Version 1.0 of the PyASTRAToolbox was released on 23rd April.
*“The PyASTRAToolbox is a Python interface to the ASTRA Toolbox, a tomography toolbox based on high-performance GPU primitives for 2D and 3D tomography.”*

**Misc**

- Derek of Coding-guidelines.com has released version 0.5 of his Numbers tool which looks at the numeric literals contained in the source code of any program you pass to it. The numbers program extracts these literals, compares them against a database of ‘interesting’ values and prints out any matches; it can also print out values that don’t match. The matching is fuzzy, the intent being to find mistakes. To see why this might be interesting and useful, take a look at this blog post where Derek discovers that both Maxima and R use a wide variety of different literal values for pi.
- Version 2.19-5 of Magma, the regularly updated, commercial computer algebra system with a focus on algebra, number theory, algebraic geometry and algebraic combinatorics has been released.
- Version 6.1 of MapleSim has been released. MapleSim is a physical modeling and simulation tool.

**From the blogs**

- Recognizing Numbers – This is very cool! Use Python’s sympy to discover formulas for numbers. For example, to discover that an approximation to pi is exp(141/895 + sqrt(780631)/895)
- Distributed Numerical Optimization in Julia –
*“This post walks through the parallel computing functionality of Julia to implement an asynchronous parallel version of the classical cutting-plane algorithm for convex (nonsmooth) optimization, demonstrating the complete workflow including running on both Amazon EC2 and a large multicore server”*

- High Performance Polynomials in Maple 17 –
*75 times*faster than Factor in Mathematica 9 apparently according to this blog post. - ArrayFire Examples (Part 4 of 8) – Image Processing – If you have a GPU and are interested in Image Processing, this is well worth your time.
- History of the modern graphics processor – From video games to high performance research computing.
- Data Science of the Facebook World – Mathematica + Facebook = interesting stuff.
- Using Symbolic Math Toolbox to Compute Area Moment of Intertia

We just released a new MATLAB-Mathematica link today: MATLink. It allows seamlessly calling MATLAB functions from Mathematica and it’s the most complete link of this type that I am aware of. It supports most MATLAB data types (sparse arrays, structs, cells).

Fabulous. I hope to find time to play with it some time. I’ll also mention it in May’s roundup.

@Szabolcs

Good job … Congratulation!!!

Thanks Mike, it would be nice if you could mention it in May’s post tomorrow. We are releasing version 1.0 now. (It’s identical to 0.99 which we think is stable enough.) Several fixes went in since the first public release, so MATLink is faster and more reliable now.

I forgot to mention that the new website is http://matlink.org/