###
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), 302-325. A detailed discussion on the `MA57`

strategy and performance is given by Duff, ACM Trans. Math. Software **30** (2004), 118-144. Relevant work on pivoting and scaling strategies is given by Duff and Pralet, SIAM Journal Matrix Analysis and Applications **27** (2005), 313-340. More recent work on static pivoting is given by Duff and Pralet, SIAM Journal Matrix Analysis and Applications **29** (2007), 1007-1024.

The `HSL_ME57`

package has a range of options including several sparsity orderings, multiple right-hand 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.

.