Developer Reference for Intel® oneAPI Math Kernel Library for C
?tbtrs
Solves a system of linear equations with a band triangular coefficient matrix, with multiple right-hand sides.
Syntax
lapack_int LAPACKE_stbtrs(int matrix_layout, char uplo, char trans, char diag,
lapack_int n, lapack_int kd, lapack_int nrhs, const float *ab,
lapack_int ldab, float *b, lapack_int ldb);
lapack_int LAPACKE_dtbtrs(int matrix_layout, char uplo, char trans, char diag,
lapack_int n, lapack_int kd, lapack_int nrhs, const double *ab,
lapack_int ldab, double *b, lapack_int ldb);
lapack_int LAPACKE_ctbtrs(int matrix_layout, char uplo, char trans, char diag,
lapack_int n, lapack_int kd, lapack_int nrhs,
const lapack_complex_float *ab, lapack_int ldab,
lapack_complex_float *b, lapack_int ldb);
lapack_int LAPACKE_ztbtrs(int matrix_layout, char uplo, char trans, char diag,
lapack_int n, lapack_int kd, lapack_int nrhs,
const lapack_complex_double *ab, lapack_int ldab,
lapack_complex_double *b, lapack_int ldb);
Include Files
mkl.h
Description
The routine solves for \(X\) the following systems of linear equations with a band triangular matrix \(A\) , with multiple right-hand sides stored in \(B\) :
\(A*X = B\)
if trans = ‘N’ ,
\(A^{T}*X = B\)
if trans = ‘T’ ,
\(A^H*X = B\)
if trans = ‘C’ (for complex matrices only).
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
uplo
Must be ‘U’ or ‘L’ .
Indicates whether A is upper or lower triangular:
If uplo = 'U' , then A is upper triangular.
If uplo = 'L' , then A is lower triangular.
trans
Must be ‘N’ or ‘T’ or ‘C’ .
If trans = 'N' , then \(A*X = B\) is solved for \(X\) .
If trans = 'T' , then \(A^T*X = B\) is solved for \(X\) .
If trans = 'C' , then \(A^H*X = B\) is solved for \(X\) .
diag
Must be ‘N’ or ‘U’ .
If diag = 'N' , then A is not a unit triangular matrix.
If diag = 'U' , then A is unit triangular: diagonal elements are assumed to be 1 and not referenced in the array ab .
n
The order of A ; the number of rows in B ; n ≥ 0.
kd
The number of superdiagonals or subdiagonals in the matrix A ; kd ≥ 0.
nrhs
The number of right-hand sides; nrhs ≥ 0.
ab
The array ab(ldab,*) contains the matrix A in band storage form.
The size of ab must be max(1, ldab*n)
b
The array b(ldb,*) contains the matrix B whose columns are the right-hand sides for the systems of equations.
The size of b is max(1, ldb * nrhs ) for column major layout and max(1, ldb * n ) for row major layout.
ldab
The leading dimension of ab ; ldab ≥ kd + 1.
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 .
Output Parameters
b
Overwritten by the solution matrix X .
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.
Application Notes
For each right-hand side \(b\) , the computed solution is the exact solution of a perturbed system of equations \((A + E)x = b\) , where
\[|E| \leq c(n) \varepsilon |A|\]
\(c(n)\) is a modest linear function of \(k\) , and \(\varepsilon\) is the machine precision.
If \(x_{0}\) is the true solution, the computed solution \(x\) satisfies this error bound:
\[\frac{\|x - x_0\|_\infty}{\|x\|_\infty} \leq c(n) \operatorname{cond}(A, x) \varepsilon, \text{ provided } c(n) \operatorname{cond}(A,x)\varepsilon < 1\]
where
\[\operatorname{cond}(A,x) = || |A^{-1}| |A| |x|_\infty || / ||x||_\infty \leq ||A^{-1}||_\infty ||A||_\infty = \kappa_\infty(A).\]
Note that \(\operatorname{cond}(A,x)\) can be much smaller than \(\kappa_{\infty}(A)\) ; the condition number of \(A^{T}\) and \(A^{H}\) might or might not be equal to \(\kappa_{\infty}(A)\) .
The approximate number of floating-point operations for one right-hand side vector \(b\) is \(2n*kd\) for real flavors and \(8n*kd\) for complex flavors.
To estimate the condition number \(\kappa_{\infty}(A)\) , call ?tbcon (Estimates the reciprocal of the condition number of a triangular band matrix.) .
To estimate the error in the solution, call ?tbrfs (Estimates the error in the solution of a system of linear equations with a triangular band coefficient matrix.) .