CHPCO(3)

SYNOPSIS
SUBROUTINE CHPCO (AP, N, KPVT, RCOND, Z)

NAME
chpco - Factor a complex Hermitian matrix stored in packed form by elimination with symmetric pivoting and estimate the condition number of the matrix.

LIBRARY
SLATEC (LINPACK)

CATEGORY
D2D1A

TYPE
COMPLEX (SSPCO-S, DSPCO-D, CHPCO-C, CSPCO-C)

KEYWORDS
CONDITION NUMBER, HERMITIAN, LINEAR ALGEBRA, LINPACK, MATRIX FACTORIZATION, PACKED

AUTHOR
Moler, C. B., (U. of New Mexico)

DESCRIPTION
CHPCO factors a complex Hermitian matrix stored in packed form by elimination with symmetric pivoting and estimates the condition of the matrix. if RCOND is not needed, CHPFA is slightly faster. To solve A*X = B , follow CHPCO by CHPSL. To compute INVERSE(A)*C , follow CHPCO by CHPSL. To compute INVERSE(A) , follow CHPCO by CHPDI. To compute DETERMINANT(A) , follow CHPCO by CHPDI. To compute INERTIA(A), follow CHPCO by CHPDI. On Entry AP COMPLEX (N*(N+1)/2) the packed form of a Hermitian matrix A . The columns of the upper triangle are stored sequentially in a one-dimensional array of length N*(N+1)/2 . See comments below for details. N INTEGER the order of the matrix A . Output AP a block diagonal matrix and the multipliers which were used to obtain it stored in packed form. The factorization can be written A = U*D*CTRANS(U) where U is a product of permutation and unit upper triangular matrices , CTRANS(U) is the conjugate transpose of U , and D is block diagonal with 1 by 1 and 2 by 2 blocks. KVPT INTEGER(N) an integer vector of pivot indices. RCOND REAL an estimate of the reciprocal condition of A . For the system A*X = B , relative perturbations in A and B of size EPSILON may cause relative perturbations in X of size EPSILON/RCOND . If RCOND is so small that the logical expression 1.0 + RCOND .EQ. 1.0 is true, then A may be singular to working precision. In particular, RCOND is zero if exact singularity is detected or the estimate underflows. Z COMPLEX(N) a work vector whose contents are usually unimportant. If A is close to a singular matrix, then Z is an approximate null vector in the sense that NORM(A*Z) = RCOND*NORM(A)*NORM(Z) . Packed Storage The following program segment will pack the upper triangle of a Hermitian matrix. K = 0 DO 20 J = 1, N DO 10 I = 1, J K = K + 1 AP(K) = A(I,J) 10 CONTINUE 20 CONTINUE

REFERENCES
J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart, LINPACK Users' Guide, SIAM, 1979.

ROUTINES CALLED
CAXPY, CDOTC, CHPFA, CSSCAL, SCASUM

REVISION HISTORY (YYMMDD)
780814 DATE WRITTEN
890531 Changed all specific intrinsics to generic. (WRB)
890831 Modified array declarations. (WRB)
891107 Modified routine equivalence list. (WRB)
891107 REVISION DATE from Version 3.2
891214 Prologue converted to Version 4.0 format. (BAB)
900326 Removed duplicate information from DESCRIPTION section. (WRB)
920501 Reformatted the REFERENCES section. (WRB)