188 SUBROUTINE zhbmv(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
196 COMPLEX*16 ALPHA,BETA
197 INTEGER INCX,INCY,K,LDA,N
201 COMPLEX*16 A(lda,*),X(*),Y(*)
208 parameter(one= (1.0d+0,0.0d+0))
210 parameter(zero= (0.0d+0,0.0d+0))
213 COMPLEX*16 TEMP1,TEMP2
214 INTEGER I,INFO,IX,IY,J,JX,JY,KPLUS1,KX,KY,L
224 INTRINSIC dble,dconjg,max,min
230 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
232 ELSE IF (n.LT.0)
THEN
234 ELSE IF (k.LT.0)
THEN
236 ELSE IF (lda.LT. (k+1))
THEN
238 ELSE IF (incx.EQ.0)
THEN
240 ELSE IF (incy.EQ.0)
THEN
244 CALL xerbla(
'ZHBMV ',info)
250 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
270 IF (beta.NE.one)
THEN
272 IF (beta.EQ.zero)
THEN
283 IF (beta.EQ.zero)
THEN
296 IF (alpha.EQ.zero)
RETURN
297 IF (lsame(uplo,
'U'))
THEN
302 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
307 DO 50 i = max(1,j-k),j - 1
308 y(i) = y(i) + temp1*a(l+i,j)
309 temp2 = temp2 + dconjg(a(l+i,j))*x(i)
311 y(j) = y(j) + temp1*dble(a(kplus1,j)) + alpha*temp2
322 DO 70 i = max(1,j-k),j - 1
323 y(iy) = y(iy) + temp1*a(l+i,j)
324 temp2 = temp2 + dconjg(a(l+i,j))*x(ix)
328 y(jy) = y(jy) + temp1*dble(a(kplus1,j)) + alpha*temp2
341 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
345 y(j) = y(j) + temp1*dble(a(1,j))
347 DO 90 i = j + 1,min(n,j+k)
348 y(i) = y(i) + temp1*a(l+i,j)
349 temp2 = temp2 + dconjg(a(l+i,j))*x(i)
351 y(j) = y(j) + alpha*temp2
359 y(jy) = y(jy) + temp1*dble(a(1,j))
363 DO 110 i = j + 1,min(n,j+k)
366 y(iy) = y(iy) + temp1*a(l+i,j)
367 temp2 = temp2 + dconjg(a(l+i,j))*x(ix)
369 y(jy) = y(jy) + alpha*temp2
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zhbmv(UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZHBMV