Scientific Libraries in Python
Horatio Davis
horatio at qpsf.edu.au
Sun Nov 25 07:22:35 EST 2001
G'day.
On Thu, 15 Nov 2001, Fernando [ISO-8859-1] Pérez wrote:
> I'd like to draft a rough map of the problem landscape.
Having read this excellent mud map of the problem space, and the
followups, I'd like to add my my $0.01 (would be $0.02 but the exchange
rate on the Aussie dollar is fairly embarrassing right now).
In order of priority, these are the tools I want in a single codebase:
SciPy (Enthought) - general code library - BSD license
http://www.scipy.org/
ScientificPython (Hinsen) - general code library - Python license
http://starship.python.net/crew/hinsen/scientific.html
MayaVi (Ramachandra) - 3D visualization over VTK - GPL
http://mayavi.sourceforge.net/
PyGSL (Gabriel et al) - Python bindings for GSL - GPL
http://www.cgabriel.org/sw/pygsl/
SciGraphica (Feiguin et al) - 2D graphing package over GTK+ - GPL
http://scigraphica.sourceforge.net/
mxNumber (Lemburg) - Python bindings for GMP - OSI/Python license
http://www.lemburg.com/files/python/mxNumber.html
SciGraphica looks to be shaping up as the MayaVi of the 2D plotting
domain. It is apparently written in C and embeds Python, rather than the
other way around, but mention is made of command-prompt interaction with
plots and worksheets, which raises the possibility of exposing it as a
library in the style of scipy.plt.
mxNumber is part of the excellent mx-Extensions packages. This project is
definitely alive and well, and that makes it the best choice for a GMP
binding.
The list of scientific packages above requires at least the libraries:
ATLAS (Whaley & Petitet) - self-optimizing CBLAS - BSD license
http://math-atlas.sourceforge.net/
VTK (Martin et al) - 3D visualization on GTK - personal copyright
http://www.visualizationtoolkit.org/
GSL (Galassi et al) - mathematical (non-Numeric) library - GPL
http://sources.redhat.com/gsl/
GNU MP (Granlund et al) - arbitrary precision arithmetic library - GPL
http://www.swox.com/gmp/
Numeric (Dubois et al) - efficient numerical array type - OSI
http://www.pfdubois.com/numpy/
mxTools (Lemburg) - set of utility modules - OSI/Python
http://www.lemburg.com/files/python/eGenix-mx-Extensions.html
GTK+ and GTKExtra - GIMP toolkit and extra widget set - LGPL
http://www.gtk.org/, http://gtkextra.sourceforge.net/
This list is not complete, but I've included it as a rough draft of what
would be in Chris Barker's "Scientific Python Distribution". They neither
need nor want to be integrated into a Grand Unified Scientific Library,
but they would have to be packaged in such a Distribution. Most of these
are just the underlying C libraries upon which the scientific Python
libraries are built. mxTools isn't, but it makes the list because of
mxNumber, and because the general functionality it provides is useful.
Numeric Python, of course, makes whichever list it feels like. (:
I've left it out of both lists because there's an announcement on the
NumPy home page that it is being reimplemented from scratch by Perry
Greenfield and company. This looks (to my untrained eye) like they're
going ahead with the Numeric 2 proposed in PEP 209, and are going for
inclusion in the Python standard library. Implications for the unified
scientific library are left as an exercise for the reader. Could we have
comments from anybody on that project team?
For a sane naming structure, I still reckon a deep package structure
rooted at Scientific is the ideal, but again, that's a secondary issue.
Now... licensing. While the top two projects are both less...restrictive,
I reluctantly have to concede that these lists have an awful lot of GPL
code that would be difficult or impossible to do without. The eventual
license, therefore, looks like GPL or (if we're lucky) LGPL. I can even
live with that if it'll get me a coherent scientific library, but others
might have a different viewpoint. What would those viewpoints be?
hoping-he's-not-an-unwitting-pawn-of-the-PSU'ly yours,
Horatio
More information about the Python-list
mailing list