Previous: chpdi Up: ../linpack.html Next: chpsl
SUBROUTINE CHPFA(AP,N,KPVT,INFO)
INTEGER N,KPVT(1),INFO
COMPLEX AP(1)
C
C CHPFA FACTORS A COMPLEX HERMITIAN MATRIX STORED IN
C PACKED FORM BY ELIMINATION WITH SYMMETRIC PIVOTING.
C
C TO SOLVE A*X = B , FOLLOW CHPFA BY CHPSL.
C TO COMPUTE INVERSE(A)*C , FOLLOW CHPFA BY CHPSL.
C TO COMPUTE DETERMINANT(A) , FOLLOW CHPFA BY CHPDI.
C TO COMPUTE INERTIA(A) , FOLLOW CHPFA BY CHPDI.
C TO COMPUTE INVERSE(A) , FOLLOW CHPFA 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 INFO INTEGER
C = 0 NORMAL VALUE.
C = K IF THE K-TH PIVOT BLOCK IS SINGULAR. THIS IS
C NOT AN ERROR CONDITION FOR THIS SUBROUTINE,
C BUT IT DOES INDICATE THAT CHPSL OR CHPDI MAY
C DIVIDE BY ZERO IF CALLED.
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 JAMES BUNCH, UNIV. CALIF. SAN DIEGO, ARGONNE NAT. LAB.
C
C SUBROUTINES AND FUNCTIONS
C
C BLAS CAXPY,CSWAP,ICAMAX
C FORTRAN ABS,AIMAG,AMAX1,CMPLX,CONJG,REAL,SQRT