Developer Reference

  • 098
  • 03/30/2020
  • Public Content
Contents

?tbsv

Solves a system of linear equations whose coefficients are in a triangular band matrix.

Syntax

call stbsv
(
uplo
,
trans
,
diag
,
n
,
k
,
a
,
lda
,
x
,
incx
)
call dtbsv
(
uplo
,
trans
,
diag
,
n
,
k
,
a
,
lda
,
x
,
incx
)
call ctbsv
(
uplo
,
trans
,
diag
,
n
,
k
,
a
,
lda
,
x
,
incx
)
call ztbsv
(
uplo
,
trans
,
diag
,
n
,
k
,
a
,
lda
,
x
,
incx
)
call tbsv
(
a
,
x
[
,
uplo
]
[
,
trans
]
[
,
diag
]
)
Include Files
  • mkl.fi
    ,
    blas.f90
Description
The
?tbsv
routines solve one of the following systems of equations:
A
*
x
=
b
, or
A
'*
x
=
b
, or conjg(
A
')*
x
=
b
,
where:
b
and
x
are
n
-element vectors,
A
is an
n
-by-
n
unit, or non-unit, upper or lower triangular band matrix, with
(
k
+ 1)
diagonals.
The routine does not test for singularity or near-singularity.
Such tests must be performed before calling this routine.
Input Parameters
uplo
CHARACTER*1
.
Specifies whether the matrix
A
is an upper or lower triangular matrix:
if
uplo
=
'U'
or
'u'
the matrix is upper triangular;
if
uplo
=
'L'
or
'l'
, the matrix is low triangular.
trans
CHARACTER*1
.
Specifies the system of equations:
if
trans
= 'N'
or
'n'
, then
A
*
x
=
b
;
if
trans
= 'T'
or
't'
, then
A
'*
x
=
b
;
if
trans
= 'C'
or
'c'
, then
conjg(
A
')*
x
=
b
.
diag
CHARACTER*1
.
Specifies whether the matrix
A
is unit triangular:
if
diag
=
'U'
or
'u'
then the matrix is unit triangular;
if
diag
=
'N'
or
'n'
, then the matrix is not unit triangular.
n
INTEGER
.
Specifies the order of the matrix
A
. The value of
n
must be at least zero.
k
INTEGER
.
On entry with
uplo
=
'U'
or
'u'
,
k
specifies the number of super-diagonals of the matrix
A
. On entry with
uplo
=
'L'
or
'l'
,
k
specifies the number of sub-diagonals of the matrix
A
.
The value of
k
must satisfy
0
k
.
a
REAL
for
stbsv
DOUBLE PRECISION
for
dtbsv
COMPLEX
for
ctbsv
DOUBLE COMPLEX
for
ztbsv
Array, size
(
lda
,
n
)
.
Before entry with
uplo
=
'U'
or
'u'
, the leading
(
k
+ 1)
by
n
part of the array
a
must contain the upper triangular band part of the matrix of coefficients, supplied column-by-column,
with the leading diagonal of the matrix in row
(
k
+ 1)
of the array, the first super-diagonal starting at position 2 in row
k
, and so on.
The top left
k
by
k
triangle of the array
a
is not referenced.
The following program segment transfers an upper triangular band matrix from conventional full matrix storage (
matrix
) to band storage (
a
):
do 20, j = 1, n m = k + 1 - j   do 10, i = max( 1, j - k ), j a( m + i, j ) = matrix( i, j ) 10 continue 20 continue
Before entry with
uplo
=