185 SUBROUTINE dsbmv(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
193 DOUBLE PRECISION ALPHA,BETA
194 INTEGER INCX,INCY,K,LDA,N
198 DOUBLE PRECISION A(lda,*),X(*),Y(*)
204 DOUBLE PRECISION ONE,ZERO
205 parameter(one=1.0d+0,zero=0.0d+0)
208 DOUBLE PRECISION TEMP1,TEMP2
209 INTEGER I,INFO,IX,IY,J,JX,JY,KPLUS1,KX,KY,L
225 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN 227 ELSE IF (n.LT.0)
THEN 229 ELSE IF (k.LT.0)
THEN 231 ELSE IF (lda.LT. (k+1))
THEN 233 ELSE IF (incx.EQ.0)
THEN 235 ELSE IF (incy.EQ.0)
THEN 239 CALL xerbla(
'DSBMV ',info)
245 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN 265 IF (beta.NE.one)
THEN 267 IF (beta.EQ.zero)
THEN 278 IF (beta.EQ.zero)
THEN 291 IF (alpha.EQ.zero)
RETURN 292 IF (lsame(uplo,
'U'))
THEN 297 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN 302 DO 50 i = max(1,j-k),j - 1
303 y(i) = y(i) + temp1*a(l+i,j)
304 temp2 = temp2 + a(l+i,j)*x(i)
306 y(j) = y(j) + temp1*a(kplus1,j) + alpha*temp2
317 DO 70 i = max(1,j-k),j - 1
318 y(iy) = y(iy) + temp1*a(l+i,j)
319 temp2 = temp2 + a(l+i,j)*x(ix)
323 y(jy) = y(jy) + temp1*a(kplus1,j) + alpha*temp2
336 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN 340 y(j) = y(j) + temp1*a(1,j)
342 DO 90 i = j + 1,min(n,j+k)
343 y(i) = y(i) + temp1*a(l+i,j)
344 temp2 = temp2 + a(l+i,j)*x(i)
346 y(j) = y(j) + alpha*temp2
354 y(jy) = y(jy) + temp1*a(1,j)
358 DO 110 i = j + 1,min(n,j+k)
361 y(iy) = y(iy) + temp1*a(l+i,j)
362 temp2 = temp2 + a(l+i,j)*x(ix)
364 y(jy) = y(jy) + alpha*temp2
subroutine dsbmv(UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DSBMV
subroutine xerbla(SRNAME, INFO)
XERBLA