Previous: chico Up: ../linpack.html Next: chifa
SUBROUTINE CHIDI(A,LDA,N,KPVT,DET,INERT,WORK,JOB)
INTEGER LDA,N,JOB
COMPLEX A(LDA,1),WORK(1)
REAL DET(2)
INTEGER KPVT(1),INERT(3)
C
C CHIDI COMPUTES THE DETERMINANT, INERTIA AND INVERSE
C OF A COMPLEX HERMITIAN MATRIX USING THE FACTORS FROM CHIFA.
C
C ON ENTRY
C
C A COMPLEX(LDA,N)
C THE OUTPUT FROM CHIFA.
C
C LDA INTEGER
C THE LEADING DIMENSION OF THE ARRAY A.
C
C N INTEGER
C THE ORDER OF THE MATRIX A.
C
C KPVT INTEGER(N)
C THE PIVOT VECTOR FROM CHIFA.
C
C WORK COMPLEX(N)
C WORK VECTOR. CONTENTS DESTROYED.
C
C JOB INTEGER
C JOB HAS THE DECIMAL EXPANSION ABC WHERE
C IF C .NE. 0, THE INVERSE IS COMPUTED,
C IF B .NE. 0, THE DETERMINANT IS COMPUTED,
C IF A .NE. 0, THE INERTIA IS COMPUTED.
C
C FOR EXAMPLE, JOB = 111 GIVES ALL THREE.
C
C ON RETURN
C
C VARIABLES NOT REQUESTED BY JOB ARE NOT USED.
C
C A CONTAINS THE UPPER TRIANGLE OF THE INVERSE OF
C THE ORIGINAL MATRIX. THE STRICT LOWER TRIANGLE
C IS NEVER REFERENCED.
C
C DET REAL(2)
C DETERMINANT OF ORIGINAL MATRIX.
C DETERMINANT = DET(1) * 10.0**DET(2)
C WITH 1.0 .LE. ABS(DET(1)) .LT. 10.0
C OR DET(1) = 0.0.
C
C INERT INTEGER(3)
C THE INERTIA OF THE ORIGINAL MATRIX.
C INERT(1) = NUMBER OF POSITIVE EIGENVALUES.
C INERT(2) = NUMBER OF NEGATIVE EIGENVALUES.
C INERT(3) = NUMBER OF ZERO EIGENVALUES.
C
C ERROR CONDITION
C
C A DIVISION BY ZERO MAY OCCUR IF THE INVERSE IS REQUESTED
C AND CHICO HAS SET RCOND .EQ. 0.0
C OR CHIFA HAS SET INFO .NE. 0 .
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,CCOPY,CDOTC,CSWAP
C FORTRAN ABS,CABS,CMPLX,CONJG,IABS,MOD,REAL
C