ptsvx#
Functions
-
void sptsvx(const char *fact, const INT n, const INT nrhs, const f32 *restrict D, const f32 *restrict E, f32 *restrict DF, f32 *restrict EF, const f32 *restrict B, const INT ldb, f32 *restrict X, const INT ldx, f32 *rcond, f32 *restrict ferr, f32 *restrict berr, f32 *restrict work, INT *info)#
SPTSVX uses the factorization A = L*D*L**T to compute the solution to a real system of linear equations A*X = B, where A is an N-by-N symmetric positive definite tridiagonal matrix and X and B are N-by-NRHS matrices.
Error bounds on the solution and a condition estimate are also provided.
Parameters
infactSpecifies whether or not the factored form of A has been supplied on entry. = ‘F’: On entry, DF and EF contain the factored form of A. D, E, DF, and EF will not be modified. = ‘N’: The matrix A will be copied to DF and EF and factored.
innThe order of the matrix A. n >= 0.
innrhsThe number of right hand sides, i.e., the number of columns of the matrices B and X. nrhs >= 0.
inDDouble precision array, dimension (n). The n diagonal elements of the tridiagonal matrix A.
inEDouble precision array, dimension (n-1). The (n-1) subdiagonal elements of the tridiagonal matrix A.
inoutDFDouble precision array, dimension (n). If fact = ‘F’, then DF is an input argument and on entry contains the n diagonal elements of the diagonal matrix D from the L*D*L**T factorization of A. If fact = ‘N’, then DF is an output argument and on exit contains the n diagonal elements of the diagonal matrix D from the L*D*L**T factorization of A.
inoutEFDouble precision array, dimension (n-1). If fact = ‘F’, then EF is an input argument and on entry contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**T factorization of A. If fact = ‘N’, then EF is an output argument and on exit contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**T factorization of A.
inBDouble precision array, dimension (ldb, nrhs). The N-by-NRHS right hand side matrix B.
inldbThe leading dimension of the array B. ldb >= max(1,n).
outXDouble precision array, dimension (ldx, nrhs). If info = 0 or info = n+1, the N-by-NRHS solution matrix X.
inldxThe leading dimension of the array X. ldx >= max(1,n).
outrcondThe reciprocal condition number of the matrix A. If rcond is less than the machine precision (in particular, if rcond = 0), the matrix is singular to working precision. This condition is indicated by a return code of info > 0.
outferrDouble precision array, dimension (nrhs). The forward error bound for each solution vector X(j).
outberrDouble precision array, dimension (nrhs). The componentwise relative backward error of each solution vector X(j).
outworkDouble precision array, dimension (2*n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, and i is
<= n: the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed. rcond = 0 is returned.
= n+1: U is nonsingular, but rcond is less than machine precision, meaning that the matrix is singular to working precision.
void sptsvx(
const char* fact,
const INT n,
const INT nrhs,
const f32* restrict D,
const f32* restrict E,
f32* restrict DF,
f32* restrict EF,
const f32* restrict B,
const INT ldb,
f32* restrict X,
const INT ldx,
f32* rcond,
f32* restrict ferr,
f32* restrict berr,
f32* restrict work,
INT* info
);
Functions
-
void dptsvx(const char *fact, const INT n, const INT nrhs, const f64 *restrict D, const f64 *restrict E, f64 *restrict DF, f64 *restrict EF, const f64 *restrict B, const INT ldb, f64 *restrict X, const INT ldx, f64 *rcond, f64 *restrict ferr, f64 *restrict berr, f64 *restrict work, INT *info)#
DPTSVX uses the factorization A = L*D*L**T to compute the solution to a real system of linear equations A*X = B, where A is an N-by-N symmetric positive definite tridiagonal matrix and X and B are N-by-NRHS matrices.
Error bounds on the solution and a condition estimate are also provided.
Parameters
infactSpecifies whether or not the factored form of A has been supplied on entry. = ‘F’: On entry, DF and EF contain the factored form of A. D, E, DF, and EF will not be modified. = ‘N’: The matrix A will be copied to DF and EF and factored.
innThe order of the matrix A. n >= 0.
innrhsThe number of right hand sides, i.e., the number of columns of the matrices B and X. nrhs >= 0.
inDDouble precision array, dimension (n). The n diagonal elements of the tridiagonal matrix A.
inEDouble precision array, dimension (n-1). The (n-1) subdiagonal elements of the tridiagonal matrix A.
inoutDFDouble precision array, dimension (n). If fact = ‘F’, then DF is an input argument and on entry contains the n diagonal elements of the diagonal matrix D from the L*D*L**T factorization of A. If fact = ‘N’, then DF is an output argument and on exit contains the n diagonal elements of the diagonal matrix D from the L*D*L**T factorization of A.
inoutEFDouble precision array, dimension (n-1). If fact = ‘F’, then EF is an input argument and on entry contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**T factorization of A. If fact = ‘N’, then EF is an output argument and on exit contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**T factorization of A.
inBDouble precision array, dimension (ldb, nrhs). The N-by-NRHS right hand side matrix B.
inldbThe leading dimension of the array B. ldb >= max(1,n).
outXDouble precision array, dimension (ldx, nrhs). If info = 0 or info = n+1, the N-by-NRHS solution matrix X.
inldxThe leading dimension of the array X. ldx >= max(1,n).
outrcondThe reciprocal condition number of the matrix A. If rcond is less than the machine precision (in particular, if rcond = 0), the matrix is singular to working precision. This condition is indicated by a return code of info > 0.
outferrDouble precision array, dimension (nrhs). The forward error bound for each solution vector X(j).
outberrDouble precision array, dimension (nrhs). The componentwise relative backward error of each solution vector X(j).
outworkDouble precision array, dimension (2*n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, and i is
<= n: the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed. rcond = 0 is returned.
= n+1: U is nonsingular, but rcond is less than machine precision, meaning that the matrix is singular to working precision.
void dptsvx(
const char* fact,
const INT n,
const INT nrhs,
const f64* restrict D,
const f64* restrict E,
f64* restrict DF,
f64* restrict EF,
const f64* restrict B,
const INT ldb,
f64* restrict X,
const INT ldx,
f64* rcond,
f64* restrict ferr,
f64* restrict berr,
f64* restrict work,
INT* info
);
Functions
-
void cptsvx(const char *fact, const INT n, const INT nrhs, const f32 *restrict D, const c64 *restrict E, f32 *restrict DF, c64 *restrict EF, const c64 *restrict B, const INT ldb, c64 *restrict X, const INT ldx, f32 *rcond, f32 *restrict ferr, f32 *restrict berr, c64 *restrict work, f32 *restrict rwork, INT *info)#
CPTSVX uses the factorization A = L*D*L**H to compute the solution to a complex system of linear equations A*X = B, where A is an N-by-N Hermitian positive definite tridiagonal matrix and X and B are N-by-NRHS matrices.
Error bounds on the solution and a condition estimate are also provided.
Parameters
infactSpecifies whether or not the factored form of A has been supplied on entry. = ‘F’: On entry, DF and EF contain the factored form of A. D, E, DF, and EF will not be modified. = ‘N’: The matrix A will be copied to DF and EF and factored.
innThe order of the matrix A. n >= 0.
innrhsThe number of right hand sides, i.e., the number of columns of the matrices B and X. nrhs >= 0.
inDSingle precision array, dimension (n). The n diagonal elements of the tridiagonal matrix A.
inESingle complex array, dimension (n-1). The (n-1) subdiagonal elements of the tridiagonal matrix A.
inoutDFSingle precision array, dimension (n). If fact = ‘F’, then DF is an input argument and on entry contains the n diagonal elements of the diagonal matrix D from the L*D*L**H factorization of A. If fact = ‘N’, then DF is an output argument and on exit contains the n diagonal elements of the diagonal matrix D from the L*D*L**H factorization of A.
inoutEFSingle complex array, dimension (n-1). If fact = ‘F’, then EF is an input argument and on entry contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**H factorization of A. If fact = ‘N’, then EF is an output argument and on exit contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**H factorization of A.
inBSingle complex array, dimension (ldb, nrhs). The N-by-NRHS right hand side matrix B.
inldbThe leading dimension of the array B. ldb >= max(1,n).
outXSingle complex array, dimension (ldx, nrhs). If info = 0 or info = n+1, the N-by-NRHS solution matrix X.
inldxThe leading dimension of the array X. ldx >= max(1,n).
outrcondThe reciprocal condition number of the matrix A. If rcond is less than the machine precision (in particular, if rcond = 0), the matrix is singular to working precision. This condition is indicated by a return code of info > 0.
outferrSingle precision array, dimension (nrhs). The forward error bound for each solution vector X(j).
outberrSingle precision array, dimension (nrhs). The componentwise relative backward error of each solution vector X(j).
outworkSingle complex array, dimension (n).
outrworkSingle precision array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, and i is
<= n: the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed. rcond = 0 is returned.
= n+1: U is nonsingular, but rcond is less than machine precision, meaning that the matrix is singular to working precision.
void cptsvx(
const char* fact,
const INT n,
const INT nrhs,
const f32* restrict D,
const c64* restrict E,
f32* restrict DF,
c64* restrict EF,
const c64* restrict B,
const INT ldb,
c64* restrict X,
const INT ldx,
f32* rcond,
f32* restrict ferr,
f32* restrict berr,
c64* restrict work,
f32* restrict rwork,
INT* info
);
Functions
-
void zptsvx(const char *fact, const INT n, const INT nrhs, const f64 *restrict D, const c128 *restrict E, f64 *restrict DF, c128 *restrict EF, const c128 *restrict B, const INT ldb, c128 *restrict X, const INT ldx, f64 *rcond, f64 *restrict ferr, f64 *restrict berr, c128 *restrict work, f64 *restrict rwork, INT *info)#
ZPTSVX uses the factorization A = L*D*L**H to compute the solution to a complex system of linear equations A*X = B, where A is an N-by-N Hermitian positive definite tridiagonal matrix and X and B are N-by-NRHS matrices.
Error bounds on the solution and a condition estimate are also provided.
Parameters
infactSpecifies whether or not the factored form of A has been supplied on entry. = ‘F’: On entry, DF and EF contain the factored form of A. D, E, DF, and EF will not be modified. = ‘N’: The matrix A will be copied to DF and EF and factored.
innThe order of the matrix A. n >= 0.
innrhsThe number of right hand sides, i.e., the number of columns of the matrices B and X. nrhs >= 0.
inDDouble precision array, dimension (n). The n diagonal elements of the tridiagonal matrix A.
inEDouble complex array, dimension (n-1). The (n-1) subdiagonal elements of the tridiagonal matrix A.
inoutDFDouble precision array, dimension (n). If fact = ‘F’, then DF is an input argument and on entry contains the n diagonal elements of the diagonal matrix D from the L*D*L**H factorization of A. If fact = ‘N’, then DF is an output argument and on exit contains the n diagonal elements of the diagonal matrix D from the L*D*L**H factorization of A.
inoutEFDouble complex array, dimension (n-1). If fact = ‘F’, then EF is an input argument and on entry contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**H factorization of A. If fact = ‘N’, then EF is an output argument and on exit contains the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*D*L**H factorization of A.
inBDouble complex array, dimension (ldb, nrhs). The N-by-NRHS right hand side matrix B.
inldbThe leading dimension of the array B. ldb >= max(1,n).
outXDouble complex array, dimension (ldx, nrhs). If info = 0 or info = n+1, the N-by-NRHS solution matrix X.
inldxThe leading dimension of the array X. ldx >= max(1,n).
outrcondThe reciprocal condition number of the matrix A. If rcond is less than the machine precision (in particular, if rcond = 0), the matrix is singular to working precision. This condition is indicated by a return code of info > 0.
outferrDouble precision array, dimension (nrhs). The forward error bound for each solution vector X(j).
outberrDouble precision array, dimension (nrhs). The componentwise relative backward error of each solution vector X(j).
outworkDouble complex array, dimension (n).
outrworkDouble precision array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, and i is
<= n: the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed. rcond = 0 is returned.
= n+1: U is nonsingular, but rcond is less than machine precision, meaning that the matrix is singular to working precision.
void zptsvx(
const char* fact,
const INT n,
const INT nrhs,
const f64* restrict D,
const c128* restrict E,
f64* restrict DF,
c128* restrict EF,
const c128* restrict B,
const INT ldb,
c128* restrict X,
const INT ldx,
f64* rcond,
f64* restrict ferr,
f64* restrict berr,
c128* restrict work,
f64* restrict rwork,
INT* info
);