Testing linear algebra software

How can we test the correctness of a computer implementation of an algorithm such as Gaussian elimination, or the QR algorithm for the eigenproblem? This is an important question for program libraries such as LAPACK, that are designed to run on a wide range of systems. We discuss testing based on verifying known backward or forward error properties of the algorithms, with particular reference to the test software in LAPACK. Issues considered include the choice of bound to verify, computation of the backward error, and choice of test matrices. Some examples of bugs in widely used linear algebra software are described.

[1]  James Hardy Wilkinson,et al.  Rounding errors in algebraic processes , 1964, IFIP Congress.

[2]  Xiaomei Yang Rounding Errors in Algebraic Processes , 1964, Nature.

[3]  W. Prager,et al.  Compatibility of approximate solution of linear equations with given error bounds for coefficients and right-hand sides , 1964 .

[4]  John A. Nelder,et al.  A Simplex Method for Function Minimization , 1965, Comput. J..

[5]  J. L. Rigal,et al.  On the Compatibility of a Given Solution With the Data of a Linear System , 1967, JACM.

[6]  Webb Miller Software for Roundoff Analysis , 1975, TOMS.

[7]  J. Bunch,et al.  Some stable methods for calculating inertia and solving symmetric linear systems , 1977 .

[8]  G. W. Stewart,et al.  Research, Development, and LINPACK , 1977 .

[9]  David L. Spooner,et al.  Software for roundoff analysis, II , 1978, TOMS.

[10]  David L. Spooner,et al.  Algorithm 532: software for roundoff analysis [Z] , 1978, TOMS.

[11]  G. Stewart The Efficient Generation of Random Orthogonal Matrices with an Application to Condition Estimators , 1980 .

[12]  Webb Miller,et al.  Software for Roundoff Analysis of Matrix Algorithms , 1980 .

[13]  Iain S. Duff,et al.  Sparse matrix test problems , 1982 .

[14]  G. W. Stewart,et al.  LINPACK working note No. 15: LINPACK, a package for solving linear systems , 1982 .

[15]  Man-Duen Choi TRICKS OR TREATS WITH THE HILBERT MATRIX , 1983 .

[16]  Jack Dongarra,et al.  LINPACK Users' Guide , 1987 .

[17]  Nicholas J. Higham,et al.  FORTRAN codes for estimating the one-norm of a real or complex matrix, with applications to condition estimation , 1988, TOMS.

[18]  T. Rowan Functional stability analysis of numerical algorithms , 1990 .

[19]  A. Andrews Eigenvalues and singular values of certain random matrices , 1990 .

[20]  Nicholas J. Higham,et al.  INVERSE PROBLEMS NEWSLETTER , 1991 .

[21]  Mei Han An,et al.  accuracy and stability of numerical algorithms , 1991 .

[22]  Susan Ostrouchov,et al.  LAPACK Working Note 41: Installation Guide for LAPACK , 1992 .

[23]  Iain S. Duff,et al.  Users' guide for the Harwell-Boeing sparse matrix collection (Release 1) , 1992 .

[24]  N. Higham,et al.  Stability of methods for matrix inversion , 1992 .

[25]  Ed Anderson,et al.  LAPACK users' guide - [release 1.0] , 1992 .

[26]  N. Higham Optimization by Direct Search in Matrix Computations , 1993, SIAM J. Matrix Anal. Appl..

[27]  N. Higham The matrix sign decomposition and its relation to the polar decomposition , 1994 .

[28]  Richard Barrett,et al.  Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods , 1994, Other Titles in Applied Mathematics.

[29]  Ji-Guang Sun,et al.  Optimal backward perturbation bounds for the linear least squares problem , 1995, Numer. Linear Algebra Appl..

[30]  M. SIAMJ. STABILITY OF THE DIAGONAL PIVOTING METHOD WITH PARTIAL PIVOTING , 1995 .

[31]  Jack Dongarra,et al.  The dangers of heterogeneous network computing: heterogeneous networks considered harmful , 1996 .

[32]  Ji-guang Sun,et al.  Optimal Backward Perturbation Bounds for Underdetermined Systems , 1997 .

[33]  John G. Lewis,et al.  Accurate Symmetric Indefinite Linear Equation Solvers , 1999, SIAM J. Matrix Anal. Appl..