155 SUBROUTINE zhemv(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
163 COMPLEX*16 alpha,beta
164 INTEGER incx,incy,lda,n
168 COMPLEX*16 a(lda,*),x(*),y(*)
175 parameter(one= (1.0d+0,0.0d+0))
177 parameter(zero= (0.0d+0,0.0d+0))
180 COMPLEX*16 temp1,temp2
181 INTEGER i,info,ix,iy,j,jx,jy,kx,ky
191 INTRINSIC dble,dconjg,max
197 IF (.NOT.
lsame(uplo,
'U') .AND. .NOT.
lsame(uplo,
'L'))
THEN
199 ELSE IF (n.LT.0)
THEN
201 ELSE IF (lda.LT.max(1,n))
THEN
203 ELSE IF (incx.EQ.0)
THEN
205 ELSE IF (incy.EQ.0)
THEN
209 CALL
xerbla(
'ZHEMV ',info)
215 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one))) return
236 IF (beta.NE.one)
THEN
238 IF (beta.EQ.zero)
THEN
249 IF (beta.EQ.zero)
THEN
262 IF (alpha.EQ.zero) return
263 IF (
lsame(uplo,
'U'))
THEN
267 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
272 y(i) = y(i) + temp1*a(i,j)
273 temp2 = temp2 + dconjg(a(i,j))*x(i)
275 y(j) = y(j) + temp1*dble(a(j,j)) + alpha*temp2
286 y(iy) = y(iy) + temp1*a(i,j)
287 temp2 = temp2 + dconjg(a(i,j))*x(ix)
291 y(jy) = y(jy) + temp1*dble(a(j,j)) + alpha*temp2
300 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
304 y(j) = y(j) + temp1*dble(a(j,j))
306 y(i) = y(i) + temp1*a(i,j)
307 temp2 = temp2 + dconjg(a(i,j))*x(i)
309 y(j) = y(j) + alpha*temp2
317 y(jy) = y(jy) + temp1*dble(a(j,j))
323 y(iy) = y(iy) + temp1*a(i,j)
324 temp2 = temp2 + dconjg(a(i,j))*x(ix)
326 y(jy) = y(jy) + alpha*temp2