Version 1.1.3
3rd May 2023 User documentation
 Recent Changes

Code Download
 Single
 Double
HSL_ME57: Sparse solver for complex symmetric or Hermitian linear systems
To solve a sparse complex symmetric or Hermitian system of linear equations. Given a sparse complex symmetric or Hermitian matrix \(\mathbf{A} = \{a_{ij}\}_{n \times n}\) and an \(n\)vector \(\mathbf{b}\) or a matrix \(\mathbf{B} = \{b_{ij} \}_{n \times r}\), this subroutine solves the system \(\mathbf{Ax} = \mathbf{b}\) or the system \(\mathbf{AX} = \mathbf{B}\). The matrix \(\mathbf{A}\) can be either complex symmetric or Hermitian. There is an option for iterative refinement.
The multifrontal method is used. HSL_ME57
is a complex version of the code HSL_MA57
. It is a direct method based on a sparse variant of Gaussian elimination and is discussed further by Duff and Reid, ACM Trans. Math. Software 9 (1983), 302325. A detailed discussion on the MA57
strategy and performance is given by Duff, ACM Trans. Math. Software 30 (2004), 118144. Relevant work on pivoting and scaling strategies is given by Duff and Pralet, SIAM Journal Matrix Analysis and Applications 27 (2005), 313340. More recent work on static pivoting is given by Duff and Pralet, SIAM Journal Matrix Analysis and Applications 29 (2007), 10071024.
The HSL_ME57
package has a range of options including several sparsity orderings, multiple righthand sides, partial solutions, error analysis, scaling, a matrix modification facility, the efficient factorization of highly rank deficient systems, and a stop and restart facility. Although the default settings should work well in general, there are several parameters available to enable the user to tune the code for his or her problem class or computer architecture.
The package has facilities for automatic restarts when storage limits are exceeded, the return of information on pivots, permutations, scaling, modifications, and the possibility to alter the pivots a posteriori.
.