$title=' Numerical Linear Algebra'; include_once "../../prlheader.php"; ?>
Matlab [77] contains a number of features that make it a much higher-level language for specifying mathematical computation than conventional programming languages (like Fortran), and it has been an invaluable tool for exploring many issues in numerical analysis. Vavasis uses a Matlab program as his differential equation solving tool in conjunction with his mesher. For this, Matlab's sparse Cholesky factorizer [43] is invaluable.
Indeed, it is the phenomenal growth of Matlab that partly inspired us to write this proposal. Scientists who used to write their own software or use subroutine libraries are switching in droves to Matlab.
Nonetheless, for some complex problems, the use of Matlab has been problematic. The main difficulty is the lack of support for data structures more general than matrices. For example, there is no easy way to represent geometric objects, which is why Vavasis's mesher is written in . Furthermore, due to excessive operator overloading, the semantics of Matlab, even for matrix operations, are complex.
It might be possible to ``fix'' Matlab by adding a powerful type system, but this would defeat the appealing interactive feature that variables don't have to declared. Instead, we are proposing to accept Matlab as it is, but design convenient semantics for connecting it to other software. Matlab already provides the C-language hooks for this purpose, so our job is the higher-level semantics of the Matlab/MathBus connection.