Developer Reference for Intel® oneAPI Math Kernel Library for C
?ptrfs
Refines the solution of a system of linear equations with a symmetric (Hermitian) positive-definite tridiagonal coefficient matrix and estimates its error.
Syntax
lapack_int LAPACKE_sptrfs(int matrix_layout, lapack_int n, lapack_int nrhs,
const float *d, const float *e, const float *df,
const float *ef, const float *b, lapack_int ldb, float *x,
lapack_int ldx, float *ferr, float *berr);
lapack_int LAPACKE_dptrfs(int matrix_layout, lapack_int n, lapack_int nrhs,
const double *d, const double *e, const double *df,
const double *ef, const double *b, lapack_int ldb, double *x,
lapack_int ldx, double *ferr, double *berr);
lapack_int LAPACKE_cptrfs(int matrix_layout, char uplo, lapack_int n, lapack_int nrhs,
const float *d, const lapack_complex_float *e, const float *df,
const lapack_complex_float *ef, const lapack_complex_float *b,
lapack_int ldb, lapack_complex_float *x, lapack_int ldx,
float *ferr, float *berr);
lapack_int LAPACKE_zptrfs(int matrix_layout, char uplo, lapack_int n, lapack_int nrhs,
const double *d, const lapack_complex_double *e,
const double *df, const lapack_complex_double *ef,
const lapack_complex_double *b, lapack_int ldb,
lapack_complex_double *x, lapack_int ldx, double *ferr,
double *berr);
Include Files
mkl.h
Description
The routine performs an iterative refinement of the solution to a system of linear equations A*X = B with a symmetric (Hermitian) positive definite tridiagonal matrix A , with multiple right-hand sides. For each computed solution vector x , the routine computes the component-wise backward error \(\beta\) . This error is the smallest relative perturbation in elements of A and b such that x is the exact solution of the perturbed system:
\(|\delta a_{ij}| \leq \beta|a_{ij}|, |\delta b_{i}| \leq \beta|b_{i}|\) such that \((A + \delta A)x = (b + \delta b)\) .
Finally, the routine estimates the component-wise forward error in the computed solution \(||x - x_{e}||_{\infty}/||x||_{\infty}\) (here x_{e} is the exact solution).
Before calling this routine:
call the factorization routine ?pttrf (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.)
call the solver routine ?pttrs (Solves a system of linear equations with a symmetric (Hermitian) positive-definite tridiagonal coefficient matrix using the factorization computed by ?pttrf.) .
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
uplo
Used for complex flavors only. Must be ‘U’ or ‘L’ .
Specifies whether the superdiagonal or the subdiagonal of the tridiagonal matrix A is stored and how A is factored:
If uplo = 'U' , the array e stores the superdiagonal of A , and A is factored as U^{H}*D*U .
If uplo = 'L' , the array e stores the subdiagonal of A , and A is factored as L*D*L^{H} .
- n
-
Specifies the order of the matrix A . The value of n must be at least zero.
nrhs
The number of right-hand sides; nrhs ≥ 0.
d , df , rwork
Arrays: d(n) , df(n) , rwork(n) .
The array d contains the n diagonal elements of the tridiagonal matrix A .
The array df contains the n diagonal elements of the diagonal matrix D from the factorization of A as computed by ?pttrf (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) .
The array rwork is a workspace array used for complex flavors only.
d
The array d (size n ) contains the n diagonal elements of the tridiagonal matrix A .
df
The array df (size n ) contains the n diagonal elements of the diagonal matrix D from the factorization of A as computed by ?pttrf (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) .
e , ef , b , x , work
Arrays: e(n -1) , ef(n -1) , b(ldb,nrhs) , x(ldx,nrhs) .
The array e contains the ( n - 1) off-diagonal elements of the tridiagonal matrix A (see uplo ).
The array ef contains the ( n - 1) off-diagonal elements of the unit bidiagonal factor U or L from the factorization computed by ?pttrf (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) (see uplo ).
The array b contains the matrix B whose columns are the right-hand sides for the systems of equations.
The array x contains the solution matrix X as computed by ?pttrs (Solves a system of linear equations with a symmetric (Hermitian) positive-definite tridiagonal coefficient matrix using the factorization computed by ?pttrf.) .
e , ef , b , x
The array e (size n -1) contains the ( n - 1) off-diagonal elements of the tridiagonal matrix A (see uplo ).
The array ef (size n -1) contains the ( n - 1) off-diagonal elements of the unit bidiagonal factor U or L from the factorization computed by ?pttrf (Computes the factorization of a symmetric (Hermitian) positive-definite tridiagonal matrix.) (see uplo ).
The array b of size max(1, ldb * nrhs ) for column major layout and max(1, ldb * n ) for row major layout contains the matrix B whose columns are the right-hand sides for the systems of equations.
The array x of size max(1, ldx * nrhs ) for column major layout and max(1, ldx * n ) for row major layout contains the solution matrix X as computed by ?pttrs (Solves a system of linear equations with a symmetric (Hermitian) positive-definite tridiagonal coefficient matrix using the factorization computed by ?pttrf.) .
ldb
The leading dimension of b ; ldb≥ max(1, n)ldb ≥ max(1, n ) for column major layout and ldb ≥ nrhs for row major layout .
ldx
The leading dimension of x ; ldx≥ max(1, n)ldx ≥ max(1, n ) for column major layout and ldx ≥ nrhs for row major layout .
Output Parameters
x
The refined solution matrix X .
ferr , berr
Arrays, size at least max(1, nrhs) . Contain the component-wise forward and backward errors, respectively, for each solution vector.
Return Values
This function returns a value info .
If info = 0 , the execution is successful.
If info = -i , parameter i had an illegal value.
LAPACK 95 Interface Notes
There exist FORTRAN 77 and FORTRAN 95 interfaces for this routine. See the Intel® oneMKL Fortran Developer Reference for details.