1acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* stbmv.f -- translated by f2c (version 20100827).
2acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray   You must link the resulting object file with libf2c:
3acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	on Microsoft Windows system, link with libf2c.lib;
4acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	on Linux or Unix systems, link with .../path/to/libf2c.a -lm
5acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	or, if you install libf2c.a in a standard place, with -lf2c -lm
6acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	-- in that order, at the end of the command line, as in
7acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		cc *.o -lf2c -lm
8acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
9acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
10acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		http://www.netlib.org/f2c/libf2c.zip
11acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray*/
12acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
13acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray#include "datatypes.h"
14acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
15acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Subroutine */ int stbmv_(char *uplo, char *trans, char *diag, integer *n,
16acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	integer *k, real *a, integer *lda, real *x, integer *incx, ftnlen
17acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	uplo_len, ftnlen trans_len, ftnlen diag_len)
18acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray{
19acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* System generated locals */
20acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    integer a_dim1, a_offset, i__1, i__2, i__3, i__4;
21acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
22acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Local variables */
23acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    integer i__, j, l, ix, jx, kx, info;
24acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    real temp;
25acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    extern logical lsame_(char *, char *, ftnlen, ftnlen);
26acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    integer kplus1;
27acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen);
28acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    logical nounit;
29acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
30acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Scalar Arguments .. */
31acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
32acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Array Arguments .. */
33acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
34acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
35acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Purpose */
36acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ======= */
37acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
38acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  STBMV  performs one of the matrix-vector operations */
39acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
40acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     x := A*x,   or   x := A'*x, */
41acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
42acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  where x is an n element vector and  A is an n by n unit, or non-unit, */
43acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  upper or lower triangular band matrix, with ( k + 1 ) diagonals. */
44acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
45acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Arguments */
46acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ========== */
47acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
48acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  UPLO   - CHARACTER*1. */
49acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry, UPLO specifies whether the matrix is an upper or */
50acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           lower triangular matrix as follows: */
51acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
52acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              UPLO = 'U' or 'u'   A is an upper triangular matrix. */
53acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
54acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              UPLO = 'L' or 'l'   A is a lower triangular matrix. */
55acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
56acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
57acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
58acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  TRANS  - CHARACTER*1. */
59acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry, TRANS specifies the operation to be performed as */
60acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           follows: */
61acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
62acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              TRANS = 'N' or 'n'   x := A*x. */
63acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
64acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              TRANS = 'T' or 't'   x := A'*x. */
65acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
66acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              TRANS = 'C' or 'c'   x := A'*x. */
67acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
68acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
69acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
70acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  DIAG   - CHARACTER*1. */
71acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry, DIAG specifies whether or not A is unit */
72acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           triangular as follows: */
73acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
74acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              DIAG = 'U' or 'u'   A is assumed to be unit triangular. */
75acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
76acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              DIAG = 'N' or 'n'   A is not assumed to be unit */
77acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                                  triangular. */
78acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
79acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
80acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
81acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  N      - INTEGER. */
82acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry, N specifies the order of the matrix A. */
83acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           N must be at least zero. */
84acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
85acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
86acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  K      - INTEGER. */
87acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry with UPLO = 'U' or 'u', K specifies the number of */
88acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           super-diagonals of the matrix A. */
89acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry with UPLO = 'L' or 'l', K specifies the number of */
90acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           sub-diagonals of the matrix A. */
91acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           K must satisfy  0 .le. K. */
92acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
93acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
94acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  A      - REAL             array of DIMENSION ( LDA, n ). */
95acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Before entry with UPLO = 'U' or 'u', the leading ( k + 1 ) */
96acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           by n part of the array A must contain the upper triangular */
97acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           band part of the matrix of coefficients, supplied column by */
98acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           column, with the leading diagonal of the matrix in row */
99acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           ( k + 1 ) of the array, the first super-diagonal starting at */
100acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           position 2 in row k, and so on. The top left k by k triangle */
101acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           of the array A is not referenced. */
102acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           The following program segment will transfer an upper */
103acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           triangular band matrix from conventional full matrix storage */
104acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           to band storage: */
105acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
106acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                 DO 20, J = 1, N */
107acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                    M = K + 1 - J */
108acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                    DO 10, I = MAX( 1, J - K ), J */
109acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                       A( M + I, J ) = matrix( I, J ) */
110acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              10    CONTINUE */
111acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              20 CONTINUE */
112acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
113acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 ) */
114acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           by n part of the array A must contain the lower triangular */
115acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           band part of the matrix of coefficients, supplied column by */
116acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           column, with the leading diagonal of the matrix in row 1 of */
117acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           the array, the first sub-diagonal starting at position 1 in */
118acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           row 2, and so on. The bottom right k by k triangle of the */
119acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           array A is not referenced. */
120acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           The following program segment will transfer a lower */
121acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           triangular band matrix from conventional full matrix storage */
122acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           to band storage: */
123acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
124acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                 DO 20, J = 1, N */
125acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                    M = 1 - J */
126acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                    DO 10, I = J, MIN( N, J + K ) */
127acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*                       A( M + I, J ) = matrix( I, J ) */
128acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              10    CONTINUE */
129acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*              20 CONTINUE */
130acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
131acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Note that when DIAG = 'U' or 'u' the elements of the array A */
132acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           corresponding to the diagonal elements of the matrix are not */
133acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           referenced, but are assumed to be unity. */
134acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
135acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
136acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  LDA    - INTEGER. */
137acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry, LDA specifies the first dimension of A as declared */
138acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           in the calling (sub) program. LDA must be at least */
139acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           ( k + 1 ). */
140acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
141acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
142acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  X      - REAL             array of dimension at least */
143acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           ( 1 + ( n - 1 )*abs( INCX ) ). */
144acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Before entry, the incremented array X must contain the n */
145acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           element vector x. On exit, X is overwritten with the */
146acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           tranformed vector x. */
147acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
148acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  INCX   - INTEGER. */
149acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           On entry, INCX specifies the increment for the elements of */
150acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           X. INCX must not be zero. */
151acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*           Unchanged on exit. */
152acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
153acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Further Details */
154acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  =============== */
155acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
156acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Level 2 Blas routine. */
157acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
158acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  -- Written on 22-October-1986. */
159acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Jack Dongarra, Argonne National Lab. */
160acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Jeremy Du Croz, Nag Central Office. */
161acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Sven Hammarling, Nag Central Office. */
162acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Richard Hanson, Sandia National Labs. */
163acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
164acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ===================================================================== */
165acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
166acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Parameters .. */
167acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
168acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Local Scalars .. */
169acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
170acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. External Functions .. */
171acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
172acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. External Subroutines .. */
173acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
174acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Intrinsic Functions .. */
175acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
176acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
177acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Test the input parameters. */
178acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
179acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Parameter adjustments */
180acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    a_dim1 = *lda;
181acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    a_offset = 1 + a_dim1;
182acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    a -= a_offset;
183acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    --x;
184acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
185acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Function Body */
186acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    info = 0;
187acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (! lsame_(uplo, "U", (ftnlen)1, (ftnlen)1) && ! lsame_(uplo, "L", (
188acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    ftnlen)1, (ftnlen)1)) {
189acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	info = 1;
190acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (! lsame_(trans, "N", (ftnlen)1, (ftnlen)1) && ! lsame_(trans,
191acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    "T", (ftnlen)1, (ftnlen)1) && ! lsame_(trans, "C", (ftnlen)1, (
192acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    ftnlen)1)) {
193acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	info = 2;
194acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (! lsame_(diag, "U", (ftnlen)1, (ftnlen)1) && ! lsame_(diag,
195acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    "N", (ftnlen)1, (ftnlen)1)) {
196acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	info = 3;
197acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (*n < 0) {
198acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	info = 4;
199acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (*k < 0) {
200acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	info = 5;
201acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (*lda < *k + 1) {
202acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	info = 7;
203acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (*incx == 0) {
204acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	info = 9;
205acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
206acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (info != 0) {
207acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	xerbla_("STBMV ", &info, (ftnlen)6);
208acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	return 0;
209acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
210acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
211acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Quick return if possible. */
212acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
213acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (*n == 0) {
214acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	return 0;
215acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
216acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
217acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    nounit = lsame_(diag, "N", (ftnlen)1, (ftnlen)1);
218acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
219acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Set up the start point in X if the increment is not unity. This */
220acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     will be  ( N - 1 )*INCX   too small for descending loops. */
221acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
222acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (*incx <= 0) {
223acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	kx = 1 - (*n - 1) * *incx;
224acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (*incx != 1) {
225acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	kx = 1;
226acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
227acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
228acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Start the operations. In this version the elements of A are */
229acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     accessed sequentially with one pass through A. */
230acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
231acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (lsame_(trans, "N", (ftnlen)1, (ftnlen)1)) {
232acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
233acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*         Form  x := A*x. */
234acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
235acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if (lsame_(uplo, "U", (ftnlen)1, (ftnlen)1)) {
236acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    kplus1 = *k + 1;
237acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    if (*incx == 1) {
238acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		i__1 = *n;
239acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = 1; j <= i__1; ++j) {
240acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (x[j] != 0.f) {
241acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp = x[j];
242acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			l = kplus1 - j;
243acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MAX */
244acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__2 = 1, i__3 = j - *k;
245acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__4 = j - 1;
246acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			for (i__ = max(i__2,i__3); i__ <= i__4; ++i__) {
247acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[i__] += temp * a[l + i__ + j * a_dim1];
248acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L10: */
249acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
250acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			if (nounit) {
251acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[j] *= a[kplus1 + j * a_dim1];
252acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
253acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
254acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L20: */
255acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
256acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    } else {
257acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		jx = kx;
258acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		i__1 = *n;
259acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = 1; j <= i__1; ++j) {
260acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (x[jx] != 0.f) {
261acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp = x[jx];
262acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			ix = kx;
263acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			l = kplus1 - j;
264acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MAX */
265acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__4 = 1, i__2 = j - *k;
266acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__3 = j - 1;
267acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			for (i__ = max(i__4,i__2); i__ <= i__3; ++i__) {
268acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[ix] += temp * a[l + i__ + j * a_dim1];
269acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    ix += *incx;
270acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L30: */
271acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
272acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			if (nounit) {
273acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[jx] *= a[kplus1 + j * a_dim1];
274acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
275acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
276acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    jx += *incx;
277acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (j > *k) {
278acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			kx += *incx;
279acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
280acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L40: */
281acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
282acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    }
283acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	} else {
284acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    if (*incx == 1) {
285acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = *n; j >= 1; --j) {
286acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (x[j] != 0.f) {
287acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp = x[j];
288acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			l = 1 - j;
289acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MIN */
290acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__1 = *n, i__3 = j + *k;
291acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__4 = j + 1;
292acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			for (i__ = min(i__1,i__3); i__ >= i__4; --i__) {
293acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[i__] += temp * a[l + i__ + j * a_dim1];
294acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L50: */
295acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
296acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			if (nounit) {
297acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[j] *= a[j * a_dim1 + 1];
298acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
299acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
300acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L60: */
301acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
302acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    } else {
303acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		kx += (*n - 1) * *incx;
304acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		jx = kx;
305acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = *n; j >= 1; --j) {
306acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (x[jx] != 0.f) {
307acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp = x[jx];
308acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			ix = kx;
309acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			l = 1 - j;
310acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MIN */
311acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__4 = *n, i__1 = j + *k;
312acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			i__3 = j + 1;
313acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			for (i__ = min(i__4,i__1); i__ >= i__3; --i__) {
314acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[ix] += temp * a[l + i__ + j * a_dim1];
315acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    ix -= *incx;
316acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L70: */
317acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
318acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			if (nounit) {
319acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			    x[jx] *= a[j * a_dim1 + 1];
320acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			}
321acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
322acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    jx -= *incx;
323acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (*n - j >= *k) {
324acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			kx -= *incx;
325acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
326acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L80: */
327acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
328acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    }
329acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
330acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else {
331acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
332acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*        Form  x := A'*x. */
333acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
334acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if (lsame_(uplo, "U", (ftnlen)1, (ftnlen)1)) {
335acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    kplus1 = *k + 1;
336acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    if (*incx == 1) {
337acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = *n; j >= 1; --j) {
338acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    temp = x[j];
339acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    l = kplus1 - j;
340acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (nounit) {
341acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp *= a[kplus1 + j * a_dim1];
342acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
343acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MAX */
344acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__4 = 1, i__1 = j - *k;
345acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__3 = max(i__4,i__1);
346acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    for (i__ = j - 1; i__ >= i__3; --i__) {
347acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp += a[l + i__ + j * a_dim1] * x[i__];
348acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L90: */
349acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
350acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    x[j] = temp;
351acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L100: */
352acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
353acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    } else {
354acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		kx += (*n - 1) * *incx;
355acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		jx = kx;
356acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = *n; j >= 1; --j) {
357acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    temp = x[jx];
358acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    kx -= *incx;
359acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    ix = kx;
360acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    l = kplus1 - j;
361acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (nounit) {
362acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp *= a[kplus1 + j * a_dim1];
363acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
364acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MAX */
365acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__4 = 1, i__1 = j - *k;
366acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__3 = max(i__4,i__1);
367acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    for (i__ = j - 1; i__ >= i__3; --i__) {
368acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp += a[l + i__ + j * a_dim1] * x[ix];
369acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			ix -= *incx;
370acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L110: */
371acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
372acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    x[jx] = temp;
373acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    jx -= *incx;
374acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L120: */
375acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
376acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    }
377acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	} else {
378acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    if (*incx == 1) {
379acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		i__3 = *n;
380acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = 1; j <= i__3; ++j) {
381acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    temp = x[j];
382acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    l = 1 - j;
383acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (nounit) {
384acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp *= a[j * a_dim1 + 1];
385acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
386acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MIN */
387acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__1 = *n, i__2 = j + *k;
388acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__4 = min(i__1,i__2);
389acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    for (i__ = j + 1; i__ <= i__4; ++i__) {
390acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp += a[l + i__ + j * a_dim1] * x[i__];
391acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L130: */
392acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
393acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    x[j] = temp;
394acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L140: */
395acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
396acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    } else {
397acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		jx = kx;
398acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		i__3 = *n;
399acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		for (j = 1; j <= i__3; ++j) {
400acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    temp = x[jx];
401acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    kx += *incx;
402acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    ix = kx;
403acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    l = 1 - j;
404acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    if (nounit) {
405acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp *= a[j * a_dim1 + 1];
406acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
407acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* Computing MIN */
408acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__1 = *n, i__2 = j + *k;
409acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    i__4 = min(i__1,i__2);
410acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    for (i__ = j + 1; i__ <= i__4; ++i__) {
411acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			temp += a[l + i__ + j * a_dim1] * x[ix];
412acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray			ix += *incx;
413acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L150: */
414acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    }
415acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    x[jx] = temp;
416acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		    jx += *incx;
417acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* L160: */
418acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		}
419acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    }
420acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
421acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
422acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
423acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    return 0;
424acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
425acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     End of STBMV . */
426acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
427acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray} /* stbmv_ */
428acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
429