cspdi


NAME

cspdi - (obsolete) compute the determinant, inertia, and inverse of a symmetric matrix A in packed storage, which has been UDU-factored by CSPCO or CSPFA.


SYNOPSIS

  SUBROUTINE CSPDI( A, N, IPIVOT, DET, WORK, JOB)
  COMPLEX A(*), DET(*), WORK(*)
  INTEGER N, JOB
  INTEGER IPIVOT(*)
 
  SUBROUTINE CSPDI_64( A, N, IPIVOT, DET, WORK, JOB)
  COMPLEX A(*), DET(*), WORK(*)
  INTEGER*8 N, JOB
  INTEGER*8 IPIVOT(*)
 

C INTERFACE

#include <sunperf.h>

void cspdi(complex *a, int n, int *ipivot, complex *det, int job);

void cspdi_64(complex *a, long n, long *ipivot, complex *det, long job);


ARGUMENTS

* 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.