153 SUBROUTINE zhemv(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
160 COMPLEX*16 ALPHA,BETA
161 INTEGER INCX,INCY,LDA,N
165 COMPLEX*16 A(LDA,*),X(*),Y(*)
172 parameter(one= (1.0d+0,0.0d+0))
174 parameter(zero= (0.0d+0,0.0d+0))
177 COMPLEX*16 TEMP1,TEMP2
178 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY
188 INTRINSIC dble,dconjg,max
194 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
196 ELSE IF (n.LT.0)
THEN
198 ELSE IF (lda.LT.max(1,n))
THEN
200 ELSE IF (incx.EQ.0)
THEN
202 ELSE IF (incy.EQ.0)
THEN
206 CALL xerbla(
'ZHEMV ',info)
212 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
233 IF (beta.NE.one)
THEN
235 IF (beta.EQ.zero)
THEN
246 IF (beta.EQ.zero)
THEN
259 IF (alpha.EQ.zero)
RETURN
260 IF (lsame(uplo,
'U'))
THEN
264 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
269 y(i) = y(i) + temp1*a(i,j)
270 temp2 = temp2 + dconjg(a(i,j))*x(i)
272 y(j) = y(j) + temp1*dble(a(j,j)) + alpha*temp2
283 y(iy) = y(iy) + temp1*a(i,j)
284 temp2 = temp2 + dconjg(a(i,j))*x(ix)
288 y(jy) = y(jy) + temp1*dble(a(j,j)) + alpha*temp2
297 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
301 y(j) = y(j) + temp1*dble(a(j,j))
303 y(i) = y(i) + temp1*a(i,j)
304 temp2 = temp2 + dconjg(a(i,j))*x(i)
306 y(j) = y(j) + alpha*temp2
314 y(jy) = y(jy) + temp1*dble(a(j,j))
320 y(iy) = y(iy) + temp1*a(i,j)
321 temp2 = temp2 + dconjg(a(i,j))*x(ix)
323 y(jy) = y(jy) + alpha*temp2
subroutine xerbla(srname, info)
subroutine zhemv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
ZHEMV