# hetri2 - Man Page

{he,sy}tri2: inverse

## Synopsis

### Functions

subroutine **chetri2** (uplo, n, a, lda, ipiv, work, lwork, info)**CHETRI2**

subroutine **csytri2** (uplo, n, a, lda, ipiv, work, lwork, info)**CSYTRI2**

subroutine **dsytri2** (uplo, n, a, lda, ipiv, work, lwork, info)**DSYTRI2**

subroutine **ssytri2** (uplo, n, a, lda, ipiv, work, lwork, info)**SSYTRI2**

subroutine **zhetri2** (uplo, n, a, lda, ipiv, work, lwork, info)**ZHETRI2**

subroutine **zsytri2** (uplo, n, a, lda, ipiv, work, lwork, info)**ZSYTRI2**

## Detailed Description

## Function Documentation

### subroutine chetri2 (character uplo, integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( * ) work, integer lwork, integer info)

**CHETRI2**

**Purpose:**

CHETRI2 computes the inverse of a COMPLEX hermitian indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by CHETRF. CHETRI2 set the LEADING DIMENSION of the workspace before calling CHETRI2X that actually computes the inverse.

**Parameters***UPLO*UPLO is CHARACTER*1 Specifies 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.

*N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is 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.

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

*IPIV*IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by CHETRF.

*WORK*WORK is COMPLEX array, dimension (N+NB+1)*(NB+3)

*LWORK*LWORK is INTEGER The dimension of the array WORK. WORK is size >= (N+NB+1)*(NB+3) If LWORK = -1, then a workspace query is assumed; the routine 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 LWORK is issued by XERBLA.

*INFO*INFO is INTEGER = 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 and its inverse could not be computed.

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **126** of file **chetri2.f**.

### subroutine csytri2 (character uplo, integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( * ) work, integer lwork, integer info)

**CSYTRI2**

**Purpose:**

CSYTRI2 computes the inverse of a COMPLEX symmetric indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by CSYTRF. CSYTRI2 sets the LEADING DIMENSION of the workspace before calling CSYTRI2X that actually computes the inverse.

**Parameters***UPLO*UPLO is CHARACTER*1 Specifies 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.

*N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is 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 CSYTRF. 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.

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

*IPIV*IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by CSYTRF.

*WORK*WORK is COMPLEX array, dimension (N+NB+1)*(NB+3)

*LWORK*LWORK is INTEGER The dimension of the array WORK. WORK is size >= (N+NB+1)*(NB+3) If LWORK = -1, then a workspace query is assumed; the routine 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 LWORK is issued by XERBLA.

*INFO*INFO is INTEGER = 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 and its inverse could not be computed.

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **126** of file **csytri2.f**.

### subroutine dsytri2 (character uplo, integer n, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, double precision, dimension( * ) work, integer lwork, integer info)

**DSYTRI2**

**Purpose:**

DSYTRI2 computes the inverse of a DOUBLE PRECISION symmetric indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by DSYTRF. DSYTRI2 sets the LEADING DIMENSION of the workspace before calling DSYTRI2X that actually computes the inverse.

**Parameters***UPLO*UPLO is CHARACTER*1 Specifies 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.

*N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is DOUBLE PRECISION 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 DSYTRF. 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.

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

*IPIV*IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by DSYTRF.

*WORK*WORK is DOUBLE PRECISION array, dimension (N+NB+1)*(NB+3)

*LWORK*LWORK is INTEGER The dimension of the array WORK. WORK is size >= (N+NB+1)*(NB+3) If LWORK = -1, then a workspace query is assumed; the routine 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 LWORK is issued by XERBLA.

*INFO*INFO is INTEGER = 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 and its inverse could not be computed.

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **126** of file **dsytri2.f**.

### subroutine ssytri2 (character uplo, integer n, real, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, real, dimension( * ) work, integer lwork, integer info)

**SSYTRI2**

**Purpose:**

SSYTRI2 computes the inverse of a REAL symmetric indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by SSYTRF. SSYTRI2 sets the LEADING DIMENSION of the workspace before calling SSYTRI2X that actually computes the inverse.

**Parameters***UPLO**N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is REAL 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 SSYTRF. 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.

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

*IPIV*IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by SSYTRF.

*WORK*WORK is REAL array, dimension (N+NB+1)*(NB+3)

*LWORK**INFO***Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **126** of file **ssytri2.f**.

### subroutine zhetri2 (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( * ) work, integer lwork, integer info)

**ZHETRI2**

**Purpose:**

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 set the LEADING DIMENSION of the workspace before calling ZHETRI2X that actually computes the inverse.

**Parameters***UPLO**N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is COMPLEX*16 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.

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

*IPIV*IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by ZHETRF.

*WORK*WORK is COMPLEX*16 array, dimension (N+NB+1)*(NB+3)

*LWORK**INFO***Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **126** of file **zhetri2.f**.

### subroutine zsytri2 (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( * ) work, integer lwork, integer info)

**ZSYTRI2**

**Purpose:**

ZSYTRI2 computes the inverse of a COMPLEX*16 symmetric indefinite matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by ZSYTRF. ZSYTRI2 sets the LEADING DIMENSION of the workspace before calling ZSYTRI2X that actually computes the inverse.

**Parameters***UPLO**N*N is INTEGER The order of the matrix A. N >= 0.

*A*A is COMPLEX*16 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 ZSYTRF. 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.

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

*IPIV*IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by ZSYTRF.

*WORK*WORK is COMPLEX*16 array, dimension (N+NB+1)*(NB+3)

*LWORK*LWORK is INTEGER The dimension of the array WORK. WORK is size >= (N+NB+1)*(NB+3) If LDWORK = -1, then a workspace query is assumed; the routine 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***Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **126** of file **zsytri2.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.