DSIDI(3F)DSIDI(3F)NAMEDSIDI - DSIDI computes the determinant, inertia and inverse of a double
precision symmetric matrix using the factors from DSIFA.
SYNOPSYS
SUBROUTINE DSIDI(A,LDA,N,KPVT,DET,INERT,WORK,JOB)
DESCRIPTION
On Entry
A DOUBLE PRECISION(LDA,N)
the output from DSIFA.
LDA INTEGER
the leading dimension of the array A.
N INTEGER
the order of the matrix A.
KPVT INTEGER(N)
the pivot vector from DSIFA.
WORK DOUBLE PRECISION(N)
work vector. Contents destroyed.
JOB INTEGER
JOB has the decimal expansion ABC where
if C .NE. 0, the inverse is computed,
if B .NE. 0, the determinant is computed,
if A .NE. 0, the inertia is computed.
For example, JOB = 111 gives all three. On Return Variables not
requested by JOB are not used.
A contains the upper triangle of the inverse of
the original matrix. The strict lower triangle
is never referenced.
DET DOUBLE PRECISION(2)
determinant of original matrix.
DETERMINANT = DET(1) * 10.0**DET(2)
with 1.0 .LE. DABS(DET(1)) .LT. 10.0
or DET(1) = 0.0.
INERT INTEGER(3)
the inertia of the original matrix.
INERT(1) = number of positive eigenvalues.
INERT(2) = number of negative eigenvalues.
INERT(3) = number of zero eigenvalues. Error Condition
A division by zero may occur if the inverse is requested and DSICO has
set RCOND .EQ. 0.0 or DSIFA has set INFO .NE. 0 . LINPACK. This
Page 1
DSIDI(3F)DSIDI(3F)
version dated 08/14/78 . James Bunch, Univ. Calif. San Diego, Argonne
Nat. Lab Subroutines and Functions BLAS DAXPY,DCOPY,DDOT,DSWAP Fortran
DABS,IABS,MOD
Page 2