CHERFS(3)                  MathKeisan LAPACK routine                 CHERFS(3)



NAME
       CHERFS - 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 CHERFS( 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( * )

           REAL           BERR( * ), FERR( * ), RWORK( * )

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

PURPOSE
       CHERFS  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 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 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 CHETRF.

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

       B       (input) COMPLEX 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 array, dimension (LDX,NRHS)
               On entry, the solution matrix X, as  computed  by  CHETRS.   On
               exit, the improved solution matrix X.

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

       FERR    (output) REAL 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) REAL 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 array, dimension (2*N)

       RWORK   (workspace) REAL 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                       CHERFS(3)