Previous: chisl Up: ../linpack.html Next: chpdi
SUBROUTINE CHPCO(AP,N,KPVT,RCOND,Z)
INTEGER N,KPVT(1)
COMPLEX AP(1),Z(1)
REAL RCOND
C
C CHPCO FACTORS A COMPLEX HERMITIAN MATRIX STORED IN PACKED
C FORM BY ELIMINATION WITH SYMMETRIC PIVOTING AND ESTIMATES
C THE CONDITION OF THE MATRIX.
C
C IF RCOND IS NOT NEEDED, CHPFA IS SLIGHTLY FASTER.
C TO SOLVE A*X = B , FOLLOW CHPCO BY CHPSL.
C TO COMPUTE INVERSE(A)*C , FOLLOW CHPCO BY CHPSL.
C TO COMPUTE INVERSE(A) , FOLLOW CHPCO BY CHPDI.
C TO COMPUTE DETERMINANT(A) , FOLLOW CHPCO BY CHPDI.
C TO COMPUTE INERTIA(A), FOLLOW CHPCO BY CHPDI.
C
C ON ENTRY
C
C AP COMPLEX (N*(N+1)/2)
C THE PACKED FORM OF A HERMITIAN MATRIX A . THE
C COLUMNS OF THE UPPER TRIANGLE ARE STORED SEQUENTIALLY
C IN A ONE-DIMENSIONAL ARRAY OF LENGTH N*(N+1)/2 .
C SEE COMMENTS BELOW FOR DETAILS.
C
C N INTEGER
C THE ORDER OF THE MATRIX A .
C
C OUTPUT
C
C AP A BLOCK DIAGONAL MATRIX AND THE MULTIPLIERS WHICH
C WERE USED TO OBTAIN IT STORED IN PACKED FORM.
C THE FACTORIZATION CAN BE WRITTEN A = U*D*CTRANS(U)
C WHERE U IS A PRODUCT OF PERMUTATION AND UNIT
C UPPER TRIANGULAR MATRICES , CTRANS(U) IS THE
C CONJUGATE TRANSPOSE OF U , AND D IS BLOCK DIAGONAL
C WITH 1 BY 1 AND 2 BY 2 BLOCKS.
C
C KPVT INTEGER(N)
C AN INTEGER VECTOR OF PIVOT INDICES.
C
C RCOND REAL
C AN ESTIMATE OF THE RECIPROCAL CONDITION OF A .
C FOR THE SYSTEM A*X = B , RELATIVE PERTURBATIONS
C IN A AND B OF SIZE EPSILON MAY CAUSE
C RELATIVE PERTURBATIONS IN X OF SIZE EPSILON/RCOND .
C IF RCOND IS SO SMALL THAT THE LOGICAL EXPRESSION
C 1.0 + RCOND .EQ. 1.0
C IS TRUE, THEN A MAY BE SINGULAR TO WORKING
C PRECISION. IN PARTICULAR, RCOND IS ZERO IF
C EXACT SINGULARITY IS DETECTED OR THE ESTIMATE
C UNDERFLOWS.
C
C Z COMPLEX(N)
C A WORK VECTOR WHOSE CONTENTS ARE USUALLY UNIMPORTANT.
C IF A IS CLOSE TO A SINGULAR MATRIX, THEN Z IS
C AN APPROXIMATE NULL VECTOR IN THE SENSE THAT
C NORM(A*Z) = RCOND*NORM(A)*NORM(Z) .
C
C PACKED STORAGE
C
C THE FOLLOWING PROGRAM SEGMENT WILL PACK THE UPPER
C TRIANGLE OF A HERMITIAN MATRIX.
C
C K = 0
C DO 20 J = 1, N
C DO 10 I = 1, J
C K = K + 1
C AP(K) = A(I,J)
C 10 CONTINUE
C 20 CONTINUE
C
C LINPACK. THIS VERSION DATED 08/14/78 .
C CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
C
C SUBROUTINES AND FUNCTIONS
C
C LINPACK CHPFA
C BLAS CAXPY,CDOTC,CSSCAL,SCASUM
C FORTRAN ABS,AIMAG,AMAX1,CMPLX,CONJG,IABS,REAL