herfs#

Functions

void cherfs(
    const char*          uplo,
    const INT            n,
    const INT            nrhs,
    const c64*  restrict A,
    const INT            lda,
    const c64*  restrict AF,
    const INT            ldaf,
    const INT*  restrict ipiv,
    const c64*  restrict B,
    const INT            ldb,
          c64*  restrict X,
    const INT            ldx,
          f32*  restrict ferr,
          f32*  restrict berr,
          c64*  restrict work,
          f32*  restrict rwork,
          INT*           info
);
void cherfs(const char *uplo, const INT n, const INT nrhs, const c64 *restrict A, const INT lda, const c64 *restrict AF, const INT ldaf, const INT *restrict ipiv, const c64 *restrict B, const INT ldb, c64 *restrict X, const INT ldx, f32 *restrict ferr, f32 *restrict berr, c64 *restrict work, f32 *restrict rwork, INT *info)#

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.

Parameters

in
uplo

= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

The order of the matrix A. n >= 0.

in
nrhs

The number of right hand sides. nrhs >= 0.

in
A

The Hermitian matrix A. If uplo = ‘U’, the leading N-by-N upper triangular part contains the upper triangular part of A. If uplo = ‘L’, the leading N-by-N lower triangular part contains the lower triangular part of A. Complex array, dimension (lda, n).

in
lda

The leading dimension of the array A. lda >= max(1, n).

in
AF

The factored form of the matrix A. AF contains the block diagonal 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. Complex array, dimension (ldaf, n).

in
ldaf

The leading dimension of the array AF. ldaf >= max(1, n).

in
ipiv

Details of the interchanges and the block structure of D as determined by CHETRF. Integer array, dimension (n).

in
B

The right hand side matrix B. Complex array, dimension (ldb, nrhs).

in
ldb

The leading dimension of the array B. ldb >= max(1, n).

inout
X

On entry, the solution matrix X, as computed by CHETRS. On exit, the improved solution matrix X. Complex array, dimension (ldx, nrhs).

in
ldx

The leading dimension of the array X. ldx >= max(1, n).

out
ferr

The estimated forward error bound for each solution vector X(j). Real array, dimension (nrhs).

out
berr

The componentwise relative backward error of each solution vector X(j). Real array, dimension (nrhs).

out
work

Complex workspace array, dimension (2*n).

out
rwork

Real workspace array, dimension (n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void zherfs(
    const char*          uplo,
    const INT            n,
    const INT            nrhs,
    const c128* restrict A,
    const INT            lda,
    const c128* restrict AF,
    const INT            ldaf,
    const INT*  restrict ipiv,
    const c128* restrict B,
    const INT            ldb,
          c128* restrict X,
    const INT            ldx,
          f64*  restrict ferr,
          f64*  restrict berr,
          c128* restrict work,
          f64*  restrict rwork,
          INT*           info
);
void zherfs(const char *uplo, const INT n, const INT nrhs, const c128 *restrict A, const INT lda, const c128 *restrict AF, const INT ldaf, const INT *restrict ipiv, const c128 *restrict B, const INT ldb, c128 *restrict X, const INT ldx, f64 *restrict ferr, f64 *restrict berr, c128 *restrict work, f64 *restrict rwork, INT *info)#

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.

Parameters

in
uplo

= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

The order of the matrix A. n >= 0.

in
nrhs

The number of right hand sides. nrhs >= 0.

in
A

The Hermitian matrix A. If uplo = ‘U’, the leading N-by-N upper triangular part contains the upper triangular part of A. If uplo = ‘L’, the leading N-by-N lower triangular part contains the lower triangular part of A. Complex array, dimension (lda, n).

in
lda

The leading dimension of the array A. lda >= max(1, n).

in
AF

The factored form of the matrix A. AF contains the block diagonal 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. Complex array, dimension (ldaf, n).

in
ldaf

The leading dimension of the array AF. ldaf >= max(1, n).

in
ipiv

Details of the interchanges and the block structure of D as determined by ZHETRF. Integer array, dimension (n).

in
B

The right hand side matrix B. Complex array, dimension (ldb, nrhs).

in
ldb

The leading dimension of the array B. ldb >= max(1, n).

inout
X

On entry, the solution matrix X, as computed by ZHETRS. On exit, the improved solution matrix X. Complex array, dimension (ldx, nrhs).

in
ldx

The leading dimension of the array X. ldx >= max(1, n).

out
ferr

The estimated forward error bound for each solution vector X(j). Real array, dimension (nrhs).

out
berr

The componentwise relative backward error of each solution vector X(j). Real array, dimension (nrhs).

out
work

Complex workspace array, dimension (2*n).

out
rwork

Real workspace array, dimension (n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value