A program complex is a package comprising a number of modules for particular tasks linked through a control module. The complex described here brings together a numbr of modules (routines) for solving systems of linear equations, both square and rectangular. Its aim is to provide an environment into which a problem is input and which returns a variety of messages. These messages indicate the progress of the problem through the modules and estimate the reliability of the solution relative both to input parameters that define the accuracy of the data and to machine characteristics. For example, the code might be presented with a symmetric system of equations and told that it is positive definite. On finding that the system is indefinite through attempting a Choleshi factorization, and internal transformation of the data is performed and an alternative module based on the Gaussian elimination variant is called for this problem. If this second module then determines that the matrix is singular to the precision of the data specified, the complex will proceed by yet another internal transformation and the use of a method based on a singular value decomposition. At each stage the user is kept informed of the progress of his problem.
A variety of other linear algebra options, in addition to those described above, are provided in the complex described in this paper. To the reviewers, this seems to be the type of useful knowledge-based system which should make an almost immediate impact in the more straightforward areas of numerical algorithms, possibly with the addition of more user interaction.