S. Bonettini - V. Ruggiero


The code is a collection of Fortran 90 subroutines for the factorization and the solution of  systems that admit a Cholesky-like factorization (for example, quasidefinite systems).
It is based on a modification of the package of Ng and Peyton, that performs the Cholesky factorization of a positive definite matrix. The package is included in LIPSOL 0.3, downloadable from The whole process can be subdivided in two phases.The first phase is depending only on the structure of the matrix and its aims are performing the minimum degree reordering (ORDMMD), providing the supernodal subdivision (SFINIT) and computing the symbolic factorization (SYMFCT, BFINIT) of the matrix. These subroutines belong to the package of Ng and Peyton. In the second phase, the actual factorization of the matrix is performed by means of the subroutines INPNV (also from the Ng and Peyton package) and BLKFCT. The last one is derived from the BLKFCT subroutine of Ng and Peyton, so that it can be used in combination with the other subroutines of that package, but it produces a Cholesky-like LDLT factorization (instead of the Cholesky factorization LLT), where L is a triangular matrix with diagonal entries equal to 1 and D is a diagonal nonsingular matrix. The modified routine BLKFCT includes the regularization process and the possibility to apply it also to nonquasidefinite  matrices. Indeed, during the factorization, if a too small pivotal element is encoutered, it is substituted by a larger value. Moreover, the sign assigned to the pivotal element depends on its position along the diagonal: it is positive if the element belongs to the positive definite block of the matrix (the first NSUP rows), it is negative otherwise. Finally, the solution of the systems Ly = b and LTx = D-1y can be obtained by means of a routine that is a modified version of the subroutine BLKSLV (included in the package of Ng and Peyton).

The effectiveness of the package of Ng and Peyton, due to a suitable use of the cache memory, is maintained.


This work is supported by the Italian FIRB Project
Parallel Algorithms and Numerical Nonlinear Optimization (grant RBAU01JYPN),
and by the Italian M.I.U.R. Project
Numerical Methods and Mathematical Software in Applications (grant 2004012559),

Instructions and documentation

The file BLKFCLT.F contains all the subroutines needed for the factorization of the matrix and for the solution of the system. All the matrices involved have to be stored in the Compressed Column Storage form. As an example of the subroutines usage, download the file example.f90 .


An extensive numerical experimentation of the package BLKFCLT can be found in the technical report n.64 of the University of Modena and Reggio Emilia. Here, the factorization subroutines are employed in the optimization framework, in the solution of the inner subproblem of an interior-point loop.


Additional information

  1. S. Bonettini, V. Ruggiero, Some iterative methods for the solution of a reduced symmetric indefinite KKT system, (2004)
  2. J. W. Liu, E. G. Peyton, On finding supernodes for sparse matrix computations, SIAM J. Matrix Anal. Appl., 14 (1993), 242-252.