Contents


NAME

     zgetri - compute the inverse of a matrix using the  LU  fac-
     torization computed by CGETRF

SYNOPSIS

     SUBROUTINE ZGETRI(N, A, LDA, IPIVOT, WORK, LDWORK, INFO)

     DOUBLE COMPLEX A(LDA,*), WORK(*)
     INTEGER N, LDA, LDWORK, INFO
     INTEGER IPIVOT(*)

     SUBROUTINE ZGETRI_64(N, A, LDA, IPIVOT, WORK, LDWORK, INFO)

     DOUBLE COMPLEX A(LDA,*), WORK(*)
     INTEGER*8 N, LDA, LDWORK, INFO
     INTEGER*8 IPIVOT(*)

  F95 INTERFACE
     SUBROUTINE GETRI([N], A, [LDA], IPIVOT, [WORK], [LDWORK], [INFO])

     COMPLEX(8), DIMENSION(:) :: WORK
     COMPLEX(8), DIMENSION(:,:) :: A
     INTEGER :: N, LDA, LDWORK, INFO
     INTEGER, DIMENSION(:) :: IPIVOT

     SUBROUTINE GETRI_64([N], A, [LDA], IPIVOT, [WORK], [LDWORK], [INFO])

     COMPLEX(8), DIMENSION(:) :: WORK
     COMPLEX(8), DIMENSION(:,:) :: A
     INTEGER(8) :: N, LDA, LDWORK, INFO
     INTEGER(8), DIMENSION(:) :: IPIVOT

  C INTERFACE
     #include <sunperf.h>

     void zgetri(int n, doublecomplex *a, int lda,  int  *ipivot,
               int *info);

     void zgetri_64(long n,  doublecomplex  *a,  long  lda,  long
               *ipivot, long *info);

PURPOSE

     zgetri computes the inverse of a matrix using the LU factor-
     ization computed by CGETRF.

     This method inverts U and then computes  inv(A)  by  solving
     the system inv(A)*L = inv(U) for inv(A).

ARGUMENTS

     N (input) The order of the matrix A.  N >= 0.

     A (input/output)
               On entry, the factors L and U from the  factoriza-
               tion A = P*L*U as computed by CGETRF.  On exit, if
               INFO = 0, the inverse of the original matrix A.

     LDA (input)
               The leading dimension of  the  array  A.   LDA  >=
               max(1,N).

     IPIVOT (input)
               The pivot indices from CGETRF; for 1<=i<=N, row  i
               of the matrix was interchanged with row IPIVOT(i).

     WORK (workspace)
               On exit,  if  INFO=0,  then  WORK(1)  returns  the
               optimal LDWORK.

     LDWORK (input)
               The  dimension  of  the  array  WORK.   LDWORK  >=
               max(1,N).  For optimal performance LDWORK >= N*NB,
               where NB is  the  optimal  blocksize  returned  by
               ILAENV.

               If LDWORK = -1, then a workspace query is assumed;
               the  routine  only  calculates the optimal size of
               the WORK array, returns this value  as  the  first
               entry  of  the  WORK  array,  and no error message
               related to LDWORK is issued by XERBLA.

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value
               > 0:  if INFO = i, U(i,i)  is  exactly  zero;  the
               matrix  is  singular  and its inverse could not be
               computed.