hetri2#
Functions
-
void chetri2(const char *uplo, const INT n, c64 *restrict A, const INT lda, const INT *restrict ipiv, c64 *restrict work, const INT lwork, INT *info)#
CHETRI2 computes the inverse of a COMPLEX*16 hermitian indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by CHETRF.
CHETRI2 sets the LEADING DIMENSION of the workspace before calling CHETRI2X that actually computes the inverse.
Parameters
inuploSpecifies whether the details of the factorization are stored as an upper or lower triangular matrix. = ‘U’: Upper triangular, form is A = U*D*U**T; = ‘L’: Lower triangular, form is A = L*D*L**T.
innThe order of the matrix A. n >= 0.
inoutASingle complex array, dimension (lda, n). On entry, the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CHETRF. On exit, if info = 0, the (symmetric) inverse of the original matrix. If uplo = ‘U’, the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if uplo = ‘L’ the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced.
inldaThe leading dimension of the array A. lda >= max(1,n).
inipivInteger array, dimension (n). Details of the interchanges and the block structure of D as determined by CHETRF.
outworkSingle complex array, dimension (max(1, lwork)).
inlworkThe dimension of the array work. If n = 0, lwork >= 1, else lwork >= (n+nb+1)*(nb+3). If lwork = -1, then a workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, D(i,i) = 0; the matrix is singular.
void chetri2(
const char* uplo,
const INT n,
c64* restrict A,
const INT lda,
const INT* restrict ipiv,
c64* restrict work,
const INT lwork,
INT* info
);
Functions
-
void zhetri2(const char *uplo, const INT n, c128 *restrict A, const INT lda, const INT *restrict ipiv, c128 *restrict work, const INT lwork, INT *info)#
ZHETRI2 computes the inverse of a COMPLEX*16 hermitian indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by ZHETRF.
ZHETRI2 sets the LEADING DIMENSION of the workspace before calling ZHETRI2X that actually computes the inverse.
Parameters
inuploSpecifies whether the details of the factorization are stored as an upper or lower triangular matrix. = ‘U’: Upper triangular, form is A = U*D*U**T; = ‘L’: Lower triangular, form is A = L*D*L**T.
innThe order of the matrix A. n >= 0.
inoutADouble complex array, dimension (lda, n). On entry, the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by ZHETRF. On exit, if info = 0, the (symmetric) inverse of the original matrix. If uplo = ‘U’, the upper triangular part of the inverse is formed and the part of A below the diagonal is not referenced; if uplo = ‘L’ the lower triangular part of the inverse is formed and the part of A above the diagonal is not referenced.
inldaThe leading dimension of the array A. lda >= max(1,n).
inipivInteger array, dimension (n). Details of the interchanges and the block structure of D as determined by ZHETRF.
outworkDouble complex array, dimension (max(1, lwork)).
inlworkThe dimension of the array work. If n = 0, lwork >= 1, else lwork >= (n+nb+1)*(nb+3). If lwork = -1, then a workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, D(i,i) = 0; the matrix is singular.
void zhetri2(
const char* uplo,
const INT n,
c128* restrict A,
const INT lda,
const INT* restrict ipiv,
c128* restrict work,
const INT lwork,
INT* info
);