SUPER_LU is a C library which implements some very fast solvers for sparse systems of linear equations.
SUPER_LU contains a set of subroutines to solve a sparse linear system A*X=B. It uses Gaussian elimination with partial pivoting (GEPP). The columns of A may be preordered before factorization; the preordering for sparsity is completely separate from the factorization.
SUPER_LU is implemented in ANSI C, and must be compiled with an ANSI C compiler. It provides functionality for both real and complex matrices, in both single and double precision. The initial letter of a routine name indicates the arithmetic type and precision:
SUPER_LU invokes routines from the BLAS (Basic Linear Algebra Subprograms). For best efficiency, a user should link SUPER_LU with an optimized version of the BLAS for the given machine architecture.
On the DEC/Compaq/HP Alpha, for instance, this can be done by linking with the Compaq Extended Math Library, or CXML.
HB, a data directory which contains examples of Harwell Boeing (HB) files, a sparse matrix file format;
MGMRES, a C library which applies the restarted GMRES algorithm to solve a sparse linear system, by Lili Ju.
SPARSE_CC, a data directory which contains a description and examples of the CC format, ("compressed column") for storing a sparse matrix, including a way to write the matrix as a set of three files.
SUPER_BLAS, a C library which implements some of the Basic Linear Algebra Subprograms for fast execution.
In order to build your program that calls SUPER_LU, you need to use the appropriate command:
The SUPER_LU include files are available, specifying the interface between the user's code and the library:
SUPER_LU_S0 is a simple 5 by 5 example using single precision real arithmetic. The matrix is set up directly in the code. The basic SGSSV solver is used. Files you may copy include:
SUPER_LU_S1 is a single precision example using the G10_RUA matrix. The basic SGSSV solver is used. Files you may copy include:
SUPER_LU_S2 is a single precision example using the G10_RUA matrix. The symmetric solver option is used. The "basic" SGSSV solver is used. Files you may copy include:
SUPER_LU_S3 is a single precision example using the G10_RUA matrix. The SGSSVX "expert" solver is used. Files you may copy include:
SUPER_LU_S4 is a single precision example using the G10_RUA matrix. The SGSSVX "expert" solver is used to factor the matrix on one call, and solve a linear system on another call. Files you may copy include:
SUPER_LU_S5 is a single precision example using the G10_RUA matrix. The SGSSVX "expert" solver is used to factor and solve a linear system A*X=B. Then, a second call is made to solve a linear system A1*X=B1. As part of the second call, the user informs SGSSVX that A1 shares the sparsity pattern of A, which allows SGSSVX to carry out the new calculation more efficiently. Files you may copy include:
SUPER_LU_D0 is a simple 5 by 5 example using double precision real arithmetic. The matrix is set up directly in the code. The "basic" DGSSV solver is used. Files you may copy include:
SUPER_LU_D1 is a double precision example using the G10_RUA matrix. The "basic" DGSSV solver is used. Files you may copy include:
SUPER_LU_D2 is a double precision example using the G10_RUA matrix. The "basic" DGSSV solver is used. The symmetric solver option is used. Files you may copy include:
SUPER_LU_D3 is a double precision example using the G10_RUA matrix. The "expert" DGSSVX solver is used. Files you may copy include:
SUPER_LU_D4 is a double precision example using the G10_RUA matrix. The "expert" DGSSVX solver is used to factor the matrix on one call, and solve a linear system on another call. Files you may copy include:
SUPER_LU_D5 is a double precision example using the G10_RUA matrix. The "expert" DGSSVX solver is used to factor and solve a linear system A*X=B. Then, a second call is made to solve a linear system A1*X=B1. As part of the second call, the user informs DGSSVX that A1 shares the sparsity pattern of A, which allows DGSSVX to carry out the new calculation more efficiently. Files you may copy include:
You can go up one level to the C source codes.