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