hetri2(3)

NAME
hetri2 - {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 (MAX(1,LWORK))
    !>

    LWORK

    !>          LWORK is INTEGER
    !>          The 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; 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.

  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.

  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 (MAX(1,LWORK))
    !>

    LWORK

    !>          LWORK is INTEGER
    !>          The 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; 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.

  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

    !>          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 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 (MAX(1,LWORK))
    !>

    LWORK

    !>          LWORK is INTEGER
    !>          The 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; 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.

  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

    !>          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*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 (MAX(1,LWORK)).
    !>

    LWORK

    !>          LWORK is INTEGER
    !>          The 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; 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.

  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

    !>          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*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

    !>          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.

Author

Generated automatically by Doxygen for LAPACK from the source code.