zspdi
zspdi - (obsolete) compute the determinant, inertia, and inverse of a symmetric matrix A in
packed storage, which has been UDU-factored by CSPCO or CSPFA.
SUBROUTINE ZSPDI( A, N, IPIVOT, DET, WORK, JOB)
DOUBLE COMPLEX A(*), DET(*), WORK(*)
INTEGER N, JOB
INTEGER IPIVOT(*)
SUBROUTINE ZSPDI_64( A, N, IPIVOT, DET, WORK, JOB)
DOUBLE COMPLEX A(*), DET(*), WORK(*)
INTEGER*8 N, JOB
INTEGER*8 IPIVOT(*)
#include <sunperf.h>
void zspdi(doublecomplex *a, int n, int *ipivot, doublecomplex *det, int job);
void zspdi_64(doublecomplex *a, long n, long *ipivot, doublecomplex *det, long job);
-
* A (input/output)
-
On entry, the UDU factorization of the matrix A, as computed
by CSPCO or CSPFA. On exit, if the c digit of JOB <> 0, then A contains
the upper triangle of the inverse of the original matrix A; otherwise
unchanged.
-
* N (input)
-
Order of the original matrix A. N <> 0.
-
* IPIVOT (input)
-
Pivot vector as computed by CSPCO or CSPFA.
-
* DET (output)
-
On exit, if the b digit of JOB <> 0, then DET contains the
determinant of the matrix A. The determinant is stored as b * (10 ** expon)
where b is stored in DET(1) and expon is stored in DET(2).
1.0 <= |DET(1)| <= 10.0 or DET(1) = 0.0. If the b digit of JOB = 0, DET
is not referenced.
-
* WORK (workspace)
-
Scratch array with a dimension of N.
-
* JOB (input)
-
Integer in the form bc; determines operation the subroutine will perform:
b <> 0 Compute the determinant.
c <> 0 Compute the inverse.
Note that the inverse should not be computed if CSPCO has set RCOND = 0 or
if CSPFA has set INFO <> 0.