hetri_3x#
Functions
-
void chetri_3x(const char *uplo, const INT n, c64 *restrict A, const INT lda, const c64 *restrict E, const INT *restrict ipiv, c64 *restrict work, const INT nb, INT *info)#
CHETRI_3X computes the inverse of a complex Hermitian indefinite matrix A using the factorization computed by CHETRF_RK or ZHETRF_BK:
where U (or L) is unit upper (or lower) triangular matrix, U**H (or L**H) is the conjugate of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.A = P*U*D*(U**H)*(P**T) or A = P*L*D*(L**H)*(P**T),
This is the blocked version of the algorithm, calling Level 3 BLAS.
Parameters
inuploSpecifies whether the details of the factorization are stored as an upper or lower triangular matrix. = ‘U’: Upper triangle of A is stored; = ‘L’: Lower triangle of A is stored.
innThe order of the matrix A. n >= 0.
inoutASingle complex array, dimension (lda, n). On entry, diagonal of the block diagonal matrix D and factors U or L as computed by CHETRF_RK and ZHETRF_BK. On exit, if info = 0, the Hermitian inverse of the original matrix.
inldaThe leading dimension of the array A. lda >= max(1, n).
inESingle complex array, dimension (n). Contains the superdiagonal (or subdiagonal) elements of the Hermitian block diagonal matrix D.
inipivInteger array, dimension (n). Details of the interchanges and the block structure of D.
outworkSingle complex array, dimension (n+nb+1, nb+3).
innbBlock size.
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 chetri_3x(
const char* uplo,
const INT n,
c64* restrict A,
const INT lda,
const c64* restrict E,
const INT* restrict ipiv,
c64* restrict work,
const INT nb,
INT* info
);
Functions
-
void zhetri_3x(const char *uplo, const INT n, c128 *restrict A, const INT lda, const c128 *restrict E, const INT *restrict ipiv, c128 *restrict work, const INT nb, INT *info)#
ZHETRI_3X computes the inverse of a complex Hermitian indefinite matrix A using the factorization computed by ZHETRF_RK or ZHETRF_BK:
where U (or L) is unit upper (or lower) triangular matrix, U**H (or L**H) is the conjugate of U (or L), P is a permutation matrix, P**T is the transpose of P, and D is Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.A = P*U*D*(U**H)*(P**T) or A = P*L*D*(L**H)*(P**T),
This is the blocked version of the algorithm, calling Level 3 BLAS.
Parameters
inuploSpecifies whether the details of the factorization are stored as an upper or lower triangular matrix. = ‘U’: Upper triangle of A is stored; = ‘L’: Lower triangle of A is stored.
innThe order of the matrix A. n >= 0.
inoutADouble complex array, dimension (lda, n). On entry, diagonal of the block diagonal matrix D and factors U or L as computed by ZHETRF_RK and ZHETRF_BK. On exit, if info = 0, the Hermitian inverse of the original matrix.
inldaThe leading dimension of the array A. lda >= max(1, n).
inEDouble complex array, dimension (n). Contains the superdiagonal (or subdiagonal) elements of the Hermitian block diagonal matrix D.
inipivInteger array, dimension (n). Details of the interchanges and the block structure of D.
outworkDouble complex array, dimension (n+nb+1, nb+3).
innbBlock size.
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 zhetri_3x(
const char* uplo,
const INT n,
c128* restrict A,
const INT lda,
const c128* restrict E,
const INT* restrict ipiv,
c128* restrict work,
const INT nb,
INT* info
);