linpack_d, a Python code which solves systems of linear equations for a variety of matrix types and storage modes, by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart. The matrix and vector data is assumed to be real.
This code represents a small subset of linpack() that is most useful. During the translation from Fortran77 to Python, some input arguments have been dropped. Moreover, in a few cases, a function that performed several tasks has been replaced by several functions, each of which performs just one task.
LINPACK has officially been superseded by the LAPACK library. The LAPACK library uses more modern algorithms and code structure. However, the LAPACK library can be extraordinarily complex; what is done in a single LINPACK routine may correspond to 10 or 20 utility routines in LAPACK. This is fine if you treat LAPACK as a black box. But if you wish to learn how the algorithm works, or to adapt it, or to convert the code to another language, this is a real drawback. This is one reason I still keep a copy of LINPACK around.
The original source code is available through the NETLIB web site.
The information on this web page is distributed under the MIT license.
linpack_d is available in a C version and a C++ version and a Fortran77 version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.
condition, a Python code which implements methods of computing or estimating the condition number of a matrix.
test_matrix, a Python code which defines test matrices.
wathen_matrix, a Python code which compares storage schemes (full, banded, sparse triplet, sparse) and solution strategies (A\x, Linpack, conjugate gradient) for linear systems involving the Wathen matrix, which can arise when solving a problem using the finite element method (FEM).
Original Fortran77 version by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart. This version by John Burkardt.