Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

STBSV(3dxml)  —  Subroutines

Name

stbsv, dtbsv, ctbsv, ztbsv − Solver of a system of linear equations with a triangular band matrix

FORMAT

{S,D,C,Z}TBSV (uplo, trans, diag, n, k, a, lda, x, incx)

Arguments

uplocharacter∗1
On entry, specifies whether the matrix A is an upper- or lower-triangular matrix:

If uplo = ’U’ or ’u’, A is an upper-triangular matrix. 

If uplo = ’L’ or ’l’, A is a lower-triangular matrix. 
On exit, uplo is unchanged. 

transcharacter∗1
On entry, specifies the system to be solved:

If trans = ’N’ or ’n’, the system is Ax = b. 

If trans = ’T’ or ’t’, the system is transp(A)∗x = b. 

If trans = ’C’ or ’c’, the system is conjug_transp(A)∗x = b. 
On exit, trans is unchanged. 

diagcharacter∗1
On entry, specifies whether the matrix A is unit-triangular:

If diag = ’U’ or

If diag = ’N’ or ’n’, A is not a unit-triangular matrix. 
On exit, diag is unchanged. 

ninteger∗4
On entry, the order of the matrix A; n >= 0.
On exit, n is unchanged. 

kinteger∗4
On entry, if uplo is equal to ’U’ or matrix A.  If uplo is equal to ’L’ or ’l’, the number of sub-diagonals k of the matrix A; k >= 0. 
On exit, k is unchanged. 

areal∗4 | real∗8 | complex∗8 | complex∗16
On entry, a two-dimensional array with dimensions lda by n.

When uplo specifies the upper portion of the matrix, the leading (k + 1) by n part of the array contains the upper-triangular band part of the matrix, supplied column by column.  The main diagonal of the matrix is stored in row (k + 1) of the array, the first super-diagonal is stored in row k starting at position 2, and so on. The top left k by k triangle of the array A is not referenced. 

When uplo specifies the lower portion, the leading (k + 1) by n part of the array contains the lower-triangular band part of the matrix, supplied column by column. The main diagonal of the matrix is stored in row 1 of the array, the first sub-diagonal  is stored in row 2 starting at position 1, and so on.  The top right k by k triangle of the array A is not referenced. 

If diag is equal to ’U’ or ’u’, the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity. 
On exit, a is unchanged. 

ldainteger∗4
On entry, the first dimension of array A; lda >= (k+1).
On exit, lda is unchanged. 

xreal∗4 | real∗8 | complex∗8 | complex∗16
On entry, a one-dimensional array X of length at least (1+(n-1)∗|incx|).  Array X contains the vector b.
On exit, x is overwritten with the solution vector x. 

incxinteger∗4
On entry, the increment for the elements of X; incx must not equal zero.
On exit, incx is unchanged. 

Description

The _TBSV subprograms solve one of the following systems of linear equations for x: Ax = b or transp(A)∗x = b .  In addition to these operations, the CTBSV and ZTBSV subprograms solve the following system of linear equations for x: conjug_transp(A)∗x = b. 

b and x are vectors with n elements and A is an n by n band matrix with (k + 1) diagonals. The matrix is a  unit or non-unit, upper- or lower-triangular band matrix. 

The _TBSV routines do not perform checks for singularity or near singularity of the triangular matrix.  The requirements for such a test depend on the application.  If necessary, perform the test in your application program before calling the routine. 

Example

REAL∗8 A(10,100), X(100)
INCX = 1
K = 9
LDA = 10
N = 100
CALL DTBSV(’L’,’T’,’U’,N,K,A,LDA,X,INCX)

This FORTRAN code solves the system transp(A)∗x = b where A is a lower-triangular matrix, with a unit diagonal and 9 subdiagonals.  The right hand side b is originally contained in the vector x.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026