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)#
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
inuplo'U': Upper triangle of A is stored'L': Lower triangle of A is stored
innThe order of the matrix A.
n>=0.innrhsThe number of right hand sides.
nrhs>=0.inASingle complex array of dimension
(lda,n). The Hermitian matrix A. Ifuplo='U', the leading N-by-N upper triangular part contains the upper triangular part of A and the strictly lower triangular part is not referenced. Ifuplo='L', the leading N-by-N lower triangular part contains the lower triangular part of A and the strictly upper triangular part is not referenced.inldaThe leading dimension of A.
lda>=max(1,n).inAFSingle complex array of dimension
(ldaf,n). The factored form of 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 bychetrf.inldafThe leading dimension of AF.
ldaf>=max(1,n).inipivInteger array of dimension
n. Details of the interchanges and block structure of D fromchetrf.inBSingle complex array of dimension
(ldb,nrhs). The right hand side matrix B.inldbThe leading dimension of B.
ldb>=max(1,n).inoutXSingle complex array of dimension
(ldx,nrhs). On entry, the solution matrix X, as computed bychetrs. On exit, the improved solution matrix X.inldxThe leading dimension of X.
ldx>=max(1,n).outferrReal array of dimension
nrhs. The estimated forward error bound for each solution vector X(j). If XTRUE is the true solution corresponding to X(j),ferr[j]estimates the largest element of X(j)-XTRUE divided by the largest element of X(j).outberrReal array of dimension
nrhs. The componentwise relative backward error of each solution vector X(j), i.e., the smallest relative change in an element of A or B that makes X(j) an exact solution.outworkSingle complex workspace array of dimension
2*n.outrworkReal workspace array of dimension
n.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal value
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
);
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)#
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
inuplo'U': Upper triangle of A is stored'L': Lower triangle of A is stored
innThe order of the matrix A.
n>=0.innrhsThe number of right hand sides.
nrhs>=0.inADouble complex array of dimension
(lda,n). The Hermitian matrix A. Ifuplo='U', the leading N-by-N upper triangular part contains the upper triangular part of A and the strictly lower triangular part is not referenced. Ifuplo='L', the leading N-by-N lower triangular part contains the lower triangular part of A and the strictly upper triangular part is not referenced.inldaThe leading dimension of A.
lda>=max(1,n).inAFDouble complex array of dimension
(ldaf,n). The factored form of 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 byzhetrf.inldafThe leading dimension of AF.
ldaf>=max(1,n).inipivInteger array of dimension
n. Details of the interchanges and block structure of D fromzhetrf.inBDouble complex array of dimension
(ldb,nrhs). The right hand side matrix B.inldbThe leading dimension of B.
ldb>=max(1,n).inoutXDouble complex array of dimension
(ldx,nrhs). On entry, the solution matrix X, as computed byzhetrs. On exit, the improved solution matrix X.inldxThe leading dimension of X.
ldx>=max(1,n).outferrReal array of dimension
nrhs. The estimated forward error bound for each solution vector X(j). If XTRUE is the true solution corresponding to X(j),ferr[j]estimates the largest element of X(j)-XTRUE divided by the largest element of X(j).outberrReal array of dimension
nrhs. The componentwise relative backward error of each solution vector X(j), i.e., the smallest relative change in an element of A or B that makes X(j) an exact solution.outworkDouble complex workspace array of dimension
2*n.outrworkReal workspace array of dimension
n.outinfoinfo=0: successful exitinfo<0: ifinfo=-i, the i-th argument had an illegal value
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
);