Axiom is adding BLAS, the Basic Linear Algebra Subroutines, and
LAPACK, the Linear Algebra Package to Axiom. There are two reasons.
First, most numeric-oriented programmers expect these libraries.It
would make it easier to experiment if they were readily available.
Second, there are interesting research paths which cannot be done
using standard external libraries.
A few interesting future paths present themselves.
The standard BLAS/LAPACK is purely numeric. The current work is moving
them from Fortran to Lisp and then to Spad. These routines have
separate code for real, double, complex, and complex16 arrays and
matrices. Axiom has a much richer notion of type so it raises the
question: Can we extend BLAS/LAPACK to Axiom's other types?
NIST has a standard file format called "Matrix Market" for portable
matrix files. The format is general but only a few types are
defined. Axiom's version will clearly have to define more. Axiom will
shortly be able to read and write these standard file formats. The
standard defines "complex" as a matrix type but does not distinguish
between complex(int), complex(float), etc. so the Axiom version will
have at least that extension. However, based on the next idea it will
also need "symbolic" as a type.
This raises another interesting research question, mixing numeric and
symbolic entries in BLAS/LAPACK. An enormous amount of effort is spent
handling overflow/underflow and scaling. Most of these problems can be
rendered exact if some of the entries are symbolic.
Even more interesting is the latest book called "The End of Error:
Unum Computing". Gustafson allows dynamic expansion of the floating
number format as well as redefining infinity. This representation
gives exact results and interval results. I'm working on an
implementation. There is interesting research both in terms of Axiom
(e.g. Expression(Unum)) and BLAS/LAPACK numerics using Unums.