?hetri2
?hetri2
Computes the inverse of a Hermitian indefinite matrix through
allocating memory
and calling ?hetri2x
.Syntax
lapack_int
LAPACKE_chetri2
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
lapack_complex_float
*
a
,
lapack_int
lda
,
const
lapack_int
*
ipiv
);
lapack_int
LAPACKE_zhetri2
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
lapack_complex_double
*
a
,
lapack_int
lda
,
const
lapack_int
*
ipiv
);
Include Files
- mkl.h
Description
The routine computes the inverse or computed by
inv(
of a Hermitian indefinite matrix A
)A
using the factorization A
= U*D*U
H
A
= L*D*L
H
?hetrf
.The
?hetri2
routine allocates a temporary buffer
before calling ?hetri2x
that actually computes the inverse.Input Parameters
- matrix_layout
- Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- uplo
- Must be'U'or'L'.Indicates how the input matrixAhas been factored:If, the arrayuplo='U'astores the factorization.A=U*D*UHIf, the arrayuplo='L'astores the factorization.A=L*D*LH
- n
- The order of the matrixA;.n≥0
- a
- Arraya(size max(1,contains the block diagonal matrixlda*n))Dand the multipliers used to obtain the factorUorLas returned by?sytrf.
- lda
- The leading dimension ofa;.lda≥max(1,n)
- ipiv
- Array, size at leastmax(1,.n)Details of the interchanges and the block structure ofDas returned by?hetrf.
Output Parameters
- a
- If, the inverse of the original matrix.info= 0If, the upper triangular part of the inverse is formed and the part ofuplo='U'Abelow the diagonal is not referenced.If, the lower triangular part of the inverse is formed and the part ofuplo='L'Aabove the diagonal is not referenced.
Return Values
This function returns a value
info
.If
info
= 0, the execution is successful. If
info
=-i
, parameter i
had an illegal value.If
info
= i
, D
(i
,i
) = 0; D
is singular and its inversion could not be computed.