150 SUBROUTINE zhpmv(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY)
158 COMPLEX*16 alpha,beta
163 COMPLEX*16 ap(*),x(*),y(*)
170 parameter(one= (1.0d+0,0.0d+0))
172 parameter(zero= (0.0d+0,0.0d+0))
175 COMPLEX*16 temp1,temp2
176 INTEGER i,info,ix,iy,j,jx,jy,k,kk,kx,ky
186 INTRINSIC dble,dconjg
192 IF (.NOT.
lsame(uplo,
'U') .AND. .NOT.
lsame(uplo,
'L'))
THEN
194 ELSE IF (n.LT.0)
THEN
196 ELSE IF (incx.EQ.0)
THEN
198 ELSE IF (incy.EQ.0)
THEN
202 CALL
xerbla(
'ZHPMV ',info)
208 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one))) return
228 IF (beta.NE.one)
THEN
230 IF (beta.EQ.zero)
THEN
241 IF (beta.EQ.zero)
THEN
254 IF (alpha.EQ.zero) return
256 IF (
lsame(uplo,
'U'))
THEN
260 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
266 y(i) = y(i) + temp1*ap(k)
267 temp2 = temp2 + dconjg(ap(k))*x(i)
270 y(j) = y(j) + temp1*dble(ap(kk+j-1)) + alpha*temp2
281 DO 70 k = kk,kk + j - 2
282 y(iy) = y(iy) + temp1*ap(k)
283 temp2 = temp2 + dconjg(ap(k))*x(ix)
287 y(jy) = y(jy) + temp1*dble(ap(kk+j-1)) + alpha*temp2
297 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
301 y(j) = y(j) + temp1*dble(ap(kk))
304 y(i) = y(i) + temp1*ap(k)
305 temp2 = temp2 + dconjg(ap(k))*x(i)
308 y(j) = y(j) + alpha*temp2
317 y(jy) = y(jy) + temp1*dble(ap(kk))
320 DO 110 k = kk + 1,kk + n - j
323 y(iy) = y(iy) + temp1*ap(k)
324 temp2 = temp2 + dconjg(ap(k))*x(ix)
326 y(jy) = y(jy) + alpha*temp2