150 SUBROUTINE chpmv(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY)
163 COMPLEX ap(*),x(*),y(*)
170 parameter(one= (1.0e+0,0.0e+0))
172 parameter(zero= (0.0e+0,0.0e+0))
176 INTEGER i,info,ix,iy,j,jx,jy,k,kk,kx,ky
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(
'CHPMV ',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 + conjg(ap(k))*x(i)
270 y(j) = y(j) + temp1*
REAL(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 + conjg(ap(k))*x(ix)
287 y(jy) = y(jy) + temp1*
REAL(AP(KK+J-1)) + alpha*temp2
297 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
301 y(j) = y(j) + temp1*
REAL(ap(kk))
304 y(i) = y(i) + temp1*ap(k)
305 temp2 = temp2 + conjg(ap(k))*x(i)
308 y(j) = y(j) + alpha*temp2
317 y(jy) = y(jy) + temp1*
REAL(ap(kk))
320 DO 110 k = kk + 1,kk + n - j
323 y(iy) = y(iy) + temp1*ap(k)
324 temp2 = temp2 + conjg(ap(k))*x(ix)
326 y(jy) = y(jy) + alpha*temp2