CPST01

   Craig Lucas, University of Manchester / NAG Ltd.
   October, 2008

Purpose

CPST01 reconstructs an Hermitian positive semidefinite matrix A
from its L or U factors and the permutation matrix P and computes
the residual
   norm( P*L*L'*P' - A ) / ( N * norm(A) * EPS ) or
   norm( P*U'*U*P' - A ) / ( N * norm(A) * EPS ),
where EPS is the machine epsilon, L' is the conjugate transpose of L,
and U' is the conjugate transpose of U.

Arguments

UPLO
(input) CHARACTER*1
Specifies whether the upper or lower triangular part of the
Hermitian matrix A is stored:
= 'U':  Upper triangular
= 'L':  Lower triangular
N
(input) INTEGER
The number of rows and columns of the matrix A.  N >= 0.
A
(input) COMPLEX array, dimension (LDA,N)
The original Hermitian matrix A.
LDA
(input) INTEGER
The leading dimension of the array A.  LDA >= max(1,N)
AFAC
(input) COMPLEX array, dimension (LDAFAC,N)
The factor L or U from the L*L' or U'*U
factorization of A.
LDAFAC
(input) INTEGER
The leading dimension of the array AFAC.  LDAFAC >= max(1,N).
PERM
(output) COMPLEX array, dimension (LDPERM,N)
Overwritten with the reconstructed matrix, and then with the
difference P*L*L'*P' - A (or P*U'*U*P' - A)
LDPERM
(input) INTEGER
The leading dimension of the array PERM.
LDAPERM >= max(1,N).
PIV
(input) INTEGER array, dimension (N)
PIV is such that the nonzero entries are
P( PIV( K ), K ) = 1.
RWORK
(workspace) REAL array, dimension (N)
RESID
(output) REAL
If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS )
If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )

Call Graph

Caller Graph