ZHERFS(3)                  MathKeisan LAPACK routine                 ZHERFS(3)



NAME
       ZHERFS - the computed solution to a system of linear equations when the
       coefficient matrix is Hermitian indefinite, and provides  error  bounds
       and backward error estimates for the solution

SYNOPSIS
       SUBROUTINE ZHERFS( UPLO,  N,  NRHS,  A, LDA, AF, LDAF, IPIV, B, LDB, X,
                          LDX, FERR, BERR, WORK, RWORK, INFO )

           CHARACTER      UPLO

           INTEGER        INFO, LDA, LDAF, LDB, LDX, N, NRHS

           INTEGER        IPIV( * )

           DOUBLE         PRECISION BERR( * ), FERR( * ), RWORK( * )

           COMPLEX*16     A( LDA, * ), AF( LDAF, * ), B( LDB, * ), WORK( *  ),
                          X( LDX, * )

PURPOSE
       ZHERFS  improves  the computed solution to a system of linear equations
       when the coefficient matrix is Hermitian indefinite, and provides error
       bounds and backward error estimates for the solution.


ARGUMENTS
       UPLO    (input) CHARACTER*1
               = 'U':  Upper triangle of A is stored;
               = 'L':  Lower triangle of A is stored.

       N       (input) INTEGER
               The order of the matrix A.  N >= 0.

       NRHS    (input) INTEGER
               The  number of right hand sides, i.e., the number of columns of
               the matrices B and X.  NRHS >= 0.

       A       (input) COMPLEX*16 array, dimension (LDA,N)
               The Hermitian matrix A.  If UPLO  =  'U',  the  leading  N-by-N
               upper  triangular  part of A contains the upper triangular part
               of the matrix A, and the strictly lower triangular part of A is
               not referenced.  If UPLO = 'L', the leading N-by-N lower trian-
               gular part of A contains  the  lower  triangular  part  of  the
               matrix  A,  and  the strictly upper triangular part of A is not
               referenced.

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

       AF      (input) COMPLEX*16 array, dimension (LDAF,N)
               The factored form of the matrix A.  AF contains the block diag-
               onal  matrix  D and the multipliers used to obtain the factor U
               or L from the factorization A = U*D*U**H or  A  =  L*D*L**H  as
               computed by ZHETRF.

       LDAF    (input) INTEGER
               The leading dimension of the array AF.  LDAF >= max(1,N).

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

       B       (input) COMPLEX*16 array, dimension (LDB,NRHS)
               The right hand side matrix B.

       LDB     (input) INTEGER
               The leading dimension of the array B.  LDB >= max(1,N).

       X       (input/output) COMPLEX*16 array, dimension (LDX,NRHS)
               On entry, the solution matrix X, as  computed  by  ZHETRS.   On
               exit, the improved solution matrix X.

       LDX     (input) INTEGER
               The leading dimension of the array X.  LDX >= max(1,N).

       FERR    (output) DOUBLE PRECISION array, dimension (NRHS)
               The estimated forward error bound for each solution vector X(j)
               (the j-th column of the solution matrix X).  If  XTRUE  is  the
               true  solution  corresponding  to X(j), FERR(j) is an estimated
               upper bound for the magnitude of the largest element in (X(j) -
               XTRUE) divided by the magnitude of the largest element in X(j).
               The estimate is as reliable as the estimate for RCOND,  and  is
               almost always a slight overestimate of the true error.

       BERR    (output) DOUBLE PRECISION array, dimension (NRHS)
               The componentwise relative backward error of each solution vec-
               tor X(j) (i.e., the smallest relative change in any element  of
               A or B that makes X(j) an exact solution).

       WORK    (workspace) COMPLEX*16 array, dimension (2*N)

       RWORK   (workspace) DOUBLE PRECISION array, dimension (N)

       INFO    (output) INTEGER
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an illegal value

PARAMETERS
       ITMAX is the maximum number of steps of iterative refinement.



 LAPACK routine (version 3.1)    November 2006                       ZHERFS(3)