zhidi


NAME

zhidi - (obsolete) compute the determinant, inertia, and inverse of a Hermitian matrix A, which has been UDU-factored by CHICO or CHIFA.


SYNOPSIS

  SUBROUTINE ZHIDI( A, LDA, N, IPIVOT, DET, INERT, WORK, JOB)
  DOUBLE COMPLEX A(LDA,*), WORK(*)
  INTEGER LDA, N, JOB
  INTEGER IPIVOT(*), INERT(*)
  DOUBLE PRECISION DET(*)
 
  SUBROUTINE ZHIDI_64( A, LDA, N, IPIVOT, DET, INERT, WORK, JOB)
  DOUBLE COMPLEX A(LDA,*), WORK(*)
  INTEGER*8 LDA, N, JOB
  INTEGER*8 IPIVOT(*), INERT(*)
  DOUBLE PRECISION DET(*)
 

C INTERFACE

#include <sunperf.h>

void zhidi(doublecomplex *a, int lda, int n, int *ipivot, double *det, int *inert, int job);

void zhidi_64(doublecomplex *a, long lda, long n, long *ipivot, double *det, long *inert, long job);


ARGUMENTS

* A (input/output)
On entry, the UDU factorization of the matrix A, as computed by CHICO or CHIFA. On exit, if the c digit of JOB <> 0, then the upper triangle of A contains the upper triangle of the inverse of the original matrix A if the inverse was requested, otherwise unchanged. The strict lower triangle of A is not referenced.

* LDA (input)
Leading dimension of the array A as specified in a dimension or type statement. LDA >= max(1,N).

* N (input)
Order of the original matrix A. N >= 0.

* IPIVOT (input)
Pivot vector as computed by CHICO or CHIFA.

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

* INERT (output)
On exit, if the a digit of JOB <> 0, then INERT contains an integer triplet where:

INERT(1) = number of positive eigenvalues

INERT(2) = number of negative eigenvalues

INERT(3) = number of zero eigenvalues

If the a digit of JOB = 0 then INERT is not referenced.

* WORK (workspace)
Scratch array with a dimension of N.

* JOB (input)
Integer in the form abc; determines operation the subroutine will perform:

        a <> 0  Compute the inertia.
        b <> 0  Compute the determinant.
        c <> 0  Compute the inverse.