Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?gbtrs
Solves a system of linear equations with an LU-factored band coefficient matrix, with multiple right-hand sides.
Syntax
call sgbtrs ( trans , n , kl , ku , nrhs , ab , ldab , ipiv , b , ldb , info )
call dgbtrs ( trans , n , kl , ku , nrhs , ab , ldab , ipiv , b , ldb , info )
call cgbtrs ( trans , n , kl , ku , nrhs , ab , ldab , ipiv , b , ldb , info )
call zgbtrs ( trans , n , kl , ku , nrhs , ab , ldab , ipiv , b , ldb , info )
call gbtrs ( ab , b , ipiv , [ , kl ] [ , trans ] [ , info ] )
Include Files
mkl.fi , mkl_lapack.f90
Description
The routine solves for X in the following systems of linear equations:
\(AX\) = \(B\) if trans = ‘N’ ,
\(A^{T}X = B\) if trans = ‘T’ ,
\(A^{H}X = B\) if trans = ‘C’ (for complex matrices only).
Here A is an LU -factored general band matrix of order n with kl non-zero subdiagonals and ku nonzero superdiagonals. Before calling this routine, call ?gbtrf (Computes the LU factorization of a general m-by-n band matrix.) to compute the LU factorization of A .
Input Parameters
trans
CHARACTER*1 . Must be ‘N’ or ‘T’ or ‘C’ .
n
INTEGER . The order of A ; the number of rows in B ; n ≥ 0.
kl
INTEGER . The number of subdiagonals within the band of A ; kl ≥ 0.
ku
INTEGER . The number of superdiagonals within the band of A ; ku ≥ 0.
nrhs
INTEGER . The number of right-hand sides; nrhs ≥ 0.
ab , b
REAL for sgbtrs
DOUBLE PRECISION for dgbtrs
COMPLEX for cgbtrs
DOUBLE COMPLEX for zgbtrs .
Arrays: ab(ldab,*) , b(ldb,*) .
The array ab contains elements of the LU factors of the matrix A as returned by gbtrf . The second dimension of ab must be at least max(1, n) .
The array b contains the matrix B whose columns are the right-hand sides for the systems of equations. The second dimension of b at least max(1,nrhs) .
b
Array b size max(1, ldb * nrhs ) for column major layout and max(1, ldb * n ) for row major layout.
The array b contains the matrix B whose columns are the right-hand sides for the systems of equations.
ldab
INTEGER . The leading dimension of the array ab ; ldab ≥ 2* kl + ku +1.
ldb
INTEGER . The leading dimension of b ; ldb≥ max(1, n) .
ipiv
INTEGER . Array, size at least max(1, n) . The ipiv array, as returned by gbtrf .
Output Parameters
b
Overwritten by the solution matrix X .
info
INTEGER .
If info=0 , the execution is successful.
If info = -i , the i -th parameter had an illegal value.
Return Values
No return value, info is an Output Parameter.
LAPACK 95 Interface Notes
Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or reconstructible arguments, see LAPACK 95 Interface Conventions .
Specific details for the routine gbtrs interface are as follows:
ab
Holds the array A of size ( 2*kl+ku+1,n ).
b
Holds the matrix B of size ( n , nrhs ).
ipiv
Holds the vector of length min( m , n ).
kl
If omitted, assumed kl = ku .
ku
Restored as lda-2*kl-1 .
trans
Must be ‘N’ , ‘C’ , or ‘T’ . The default value is ‘N’ .
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| \le c(kl + ku + 1) \varepsilon P|L||U|\]
\(c(k)\) 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(kl + ku + 1) \operatorname{cond}(A, x) \varepsilon\]
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 is \(2n(ku + 2kl)\) for real flavors. The number of operations for complex flavors is 4 times greater. All these estimates assume that \(kl\) and \(ku\) are much less than min(m,n).
To estimate the condition number \(\kappa_\infty (A)\) , call ?gbcon (Estimates the reciprocal of the condition number of a band matrix in the 1-norm or the infinity-norm.) .
To refine the solution and estimate the error, call ?gbrfs (Refines the solution of a system of linear equations with a general band coefficient matrix and estimates its error.) .