186 SUBROUTINE zhbmv(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
193 COMPLEX*16 ALPHA,BETA
194 INTEGER INCX,INCY,K,LDA,N
198 COMPLEX*16 A(LDA,*),X(*),Y(*)
205 parameter(one= (1.0d+0,0.0d+0))
207 parameter(zero= (0.0d+0,0.0d+0))
210 COMPLEX*16 TEMP1,TEMP2
211 INTEGER I,INFO,IX,IY,J,JX,JY,KPLUS1,KX,KY,L
221 INTRINSIC dble,dconjg,max,min
227 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
229 ELSE IF (n.LT.0)
THEN
231 ELSE IF (k.LT.0)
THEN
233 ELSE IF (lda.LT. (k+1))
THEN
235 ELSE IF (incx.EQ.0)
THEN
237 ELSE IF (incy.EQ.0)
THEN
241 CALL xerbla(
'ZHBMV ',info)
247 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
267 IF (beta.NE.one)
THEN
269 IF (beta.EQ.zero)
THEN
280 IF (beta.EQ.zero)
THEN
293 IF (alpha.EQ.zero)
RETURN
294 IF (lsame(uplo,
'U'))
THEN
299 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
304 DO 50 i = max(1,j-k),j - 1
305 y(i) = y(i) + temp1*a(l+i,j)
306 temp2 = temp2 + dconjg(a(l+i,j))*x(i)
308 y(j) = y(j) + temp1*dble(a(kplus1,j)) + alpha*temp2
319 DO 70 i = max(1,j-k),j - 1
320 y(iy) = y(iy) + temp1*a(l+i,j)
321 temp2 = temp2 + dconjg(a(l+i,j))*x(ix)
325 y(jy) = y(jy) + temp1*dble(a(kplus1,j)) + alpha*temp2
338 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
342 y(j) = y(j) + temp1*dble(a(1,j))
344 DO 90 i = j + 1,min(n,j+k)
345 y(i) = y(i) + temp1*a(l+i,j)
346 temp2 = temp2 + dconjg(a(l+i,j))*x(i)
348 y(j) = y(j) + alpha*temp2
356 y(jy) = y(jy) + temp1*dble(a(1,j))
360 DO 110 i = j + 1,min(n,j+k)
363 y(iy) = y(iy) + temp1*a(l+i,j)
364 temp2 = temp2 + dconjg(a(l+i,j))*x(ix)
366 y(jy) = y(jy) + alpha*temp2
subroutine xerbla(srname, info)
subroutine zhbmv(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)
ZHBMV