1STBSV(1)                         BLAS routine                         STBSV(1)
2
3
4

NAME

6       STBSV - solves one of the systems of equations   A*x = b, or A'*x = b,
7

SYNOPSIS

9       SUBROUTINE STBSV(UPLO,TRANS,DIAG,N,K,A,LDA,X,INCX)
10
11           INTEGER                                        INCX,K,LDA,N
12
13           CHARACTER                                      DIAG,TRANS,UPLO
14
15           REAL                                           A(LDA,*),X(*)
16

PURPOSE

18       STBSV  solves one of the systems of equations
19
20       where  b  and  x are n element vectors and A is an n by n unit, or non-
21       unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.
22
23       No test for singularity or near-singularity is included  in  this  rou‐
24       tine. Such tests must be performed before calling this routine.
25
26

ARGUMENTS

28       UPLO   - CHARACTER*1.
29              On entry, UPLO specifies whether the matrix is an upper or lower
30              triangular matrix as follows:
31
32              UPLO = 'U' or 'u'   A is an upper triangular matrix.
33
34              UPLO = 'L' or 'l'   A is a lower triangular matrix.
35
36              Unchanged on exit.
37
38       TRANS  - CHARACTER*1.
39              On entry, TRANS specifies the equations to be solved as follows:
40
41              TRANS = 'N' or 'n'   A*x = b.
42
43              TRANS = 'T' or 't'   A'*x = b.
44
45              TRANS = 'C' or 'c'   A'*x = b.
46
47              Unchanged on exit.
48
49       DIAG   - CHARACTER*1.
50              On entry, DIAG specifies whether or not A is unit triangular  as
51              follows:
52
53              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
54
55              DIAG = 'N' or 'n'   A is not assumed to be unit triangular.
56
57              Unchanged on exit.
58
59       N      - INTEGER.
60              On  entry,  N specifies the order of the matrix A.  N must be at
61              least zero.  Unchanged on exit.
62
63       K      - INTEGER.
64              On entry with UPLO = 'U' or  'u',  K  specifies  the  number  of
65              super-diagonals  of  the  matrix A.  On entry with UPLO = 'L' or
66              'l', K specifies the number of sub-diagonals of the matrix A.  K
67              must satisfy  0 .le. K.  Unchanged on exit.
68
69       A      - REAL             array of DIMENSION ( LDA, n ).
70              Before  entry with UPLO = 'U' or 'u', the leading ( k + 1 ) by n
71              part of the array A must contain the upper triangular band  part
72              of  the  matrix of coefficients, supplied column by column, with
73              the leading diagonal of the matrix in row (  k  +  1  )  of  the
74              array, the first super-diagonal starting at position 2 in row k,
75              and so on. The top left k by k triangle of the array  A  is  not
76              referenced.   The  following  program  segment  will transfer an
77              upper triangular band matrix from conventional full matrix stor‐
78              age to band storage:
79
80              DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M
81              + I, J ) = matrix( I, J ) 10    CONTINUE 20 CONTINUE
82
83              Before entry with UPLO = 'L' or 'l', the leading ( k + 1 ) by  n
84              part  of the array A must contain the lower triangular band part
85              of the matrix of coefficients, supplied column by  column,  with
86              the  leading  diagonal  of the matrix in row 1 of the array, the
87              first sub-diagonal starting at position 1 in row 2, and  so  on.
88              The  bottom  right  k by k triangle of the array A is not refer‐
89              enced.  The following program segment will transfer a lower tri‐
90              angular  band  matrix  from  conventional full matrix storage to
91              band storage:
92
93              DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A(  M  +
94              I, J ) = matrix( I, J ) 10    CONTINUE 20 CONTINUE
95
96              Note  that  when  DIAG  = 'U' or 'u' the elements of the array A
97              corresponding to the diagonal elements of  the  matrix  are  not
98              referenced, but are assumed to be unity.  Unchanged on exit.
99
100       LDA    - INTEGER.
101              On  entry, LDA specifies the first dimension of A as declared in
102              the calling (sub) program. LDA must be at  least  (  k  +  1  ).
103              Unchanged on exit.
104
105       X      - REAL             array of dimension at least
106              (  1  +  ( n - 1 )*abs( INCX ) ).  Before entry, the incremented
107              array X must contain the n element right-hand side vector b.  On
108              exit, X is overwritten with the solution vector x.
109
110       INCX   - INTEGER.
111              On  entry,  INCX  specifies the increment for the elements of X.
112              INCX must not be zero.  Unchanged on exit.
113

FURTHER DETAILS

115       Level 2 Blas routine.
116
117       -- Written on 22-October-1986.
118          Jack Dongarra, Argonne National Lab.
119          Jeremy Du Croz, Nag Central Office.
120          Sven Hammarling, Nag Central Office.
121          Richard Hanson, Sandia National Labs.
122
123
124
125
126BLAS routine                     November 2008                        STBSV(1)
Impressum