Version 1.4.1

21 March 2013

Recent Changes

Code Download

  • Single
  • Double

HSL_MA54 Definite symmetric full matrix: partial or complete factorization and solution

For a matrix that is full, symmetric and positive definite, this module performs partial factorizations and solutions of corresponding sets of equations, paying special attention to the efficient use of cache memory. It uses a modification of the code of Andersen, Gunnels, Gustavson, Reid, and Wasniewski (ACM Trans. on Math. Software, 31, 2005, 201-227). It is designed as a kernel for use in a frontal or multifrontal solver, but may also be used for the direct solution of a full set of equations.

The modification involves limiting the eliminations to the leading p columns. The factorization takes the form

A = A11A21T A21 A22 = L11 L21 I I S 22 L11TL 21T I

where L11 is lower triangular and both A11 and L11 have order p.

The input format for A is that its lower triangular part is held in lower packed format (that is, packed by columns). This format is also used for S22 on return. The matrices L11 and L21 are held as block matrices with blocks of size at most nb × nb. Internally, we use this blocked format also for A22.

The module has facilities for rearranging a lower triangular matrix in lower packed format (that is, packed by columns) to this blocked format and vice-versa.

Subroutines are provided for partial forward and back substitution, that is, solving equations of the form

L11 L21 I X = B and L11TL21T I X = B

and the corresponding equations for a single right-hand side B and solution x.

There are also subroutines for solving one or more sets of equations after a full factorization (p = n) and for extracting the diagonal of L11.