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. Tim _______________________________________________ Axiom-developer mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/axiom-developer
