183 SUBROUTINE dsbmv(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
190 DOUBLE PRECISION ALPHA,BETA
191 INTEGER INCX,INCY,K,LDA,N
195 DOUBLE PRECISION A(LDA,*),X(*),Y(*)
201 DOUBLE PRECISION ONE,ZERO
202 parameter(one=1.0d+0,zero=0.0d+0)
205 DOUBLE PRECISION TEMP1,TEMP2
206 INTEGER I,INFO,IX,IY,J,JX,JY,KPLUS1,KX,KY,L
222 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
224 ELSE IF (n.LT.0)
THEN
226 ELSE IF (k.LT.0)
THEN
228 ELSE IF (lda.LT. (k+1))
THEN
230 ELSE IF (incx.EQ.0)
THEN
232 ELSE IF (incy.EQ.0)
THEN
236 CALL xerbla(
'DSBMV ',info)
242 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
262 IF (beta.NE.one)
THEN
264 IF (beta.EQ.zero)
THEN
275 IF (beta.EQ.zero)
THEN
288 IF (alpha.EQ.zero)
RETURN
289 IF (lsame(uplo,
'U'))
THEN
294 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
299 DO 50 i = max(1,j-k),j - 1
300 y(i) = y(i) + temp1*a(l+i,j)
301 temp2 = temp2 + a(l+i,j)*x(i)
303 y(j) = y(j) + temp1*a(kplus1,j) + alpha*temp2
314 DO 70 i = max(1,j-k),j - 1
315 y(iy) = y(iy) + temp1*a(l+i,j)
316 temp2 = temp2 + a(l+i,j)*x(ix)
320 y(jy) = y(jy) + temp1*a(kplus1,j) + alpha*temp2
333 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
337 y(j) = y(j) + temp1*a(1,j)
339 DO 90 i = j + 1,min(n,j+k)
340 y(i) = y(i) + temp1*a(l+i,j)
341 temp2 = temp2 + a(l+i,j)*x(i)
343 y(j) = y(j) + alpha*temp2
351 y(jy) = y(jy) + temp1*a(1,j)
355 DO 110 i = j + 1,min(n,j+k)
358 y(iy) = y(iy) + temp1*a(l+i,j)
359 temp2 = temp2 + a(l+i,j)*x(ix)
361 y(jy) = y(jy) + alpha*temp2
subroutine xerbla(srname, info)
subroutine dsbmv(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)
DSBMV