Contents
zgetri - compute the inverse of a matrix using the LU fac-
torization computed by CGETRF
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);
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).
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.