148      SUBROUTINE zhpmv(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY)
 
  155      COMPLEX*16 ALPHA,BETA
 
  160      COMPLEX*16 AP(*),X(*),Y(*)
 
  167      parameter(one= (1.0d+0,0.0d+0))
 
  169      parameter(zero= (0.0d+0,0.0d+0))
 
  172      COMPLEX*16 TEMP1,TEMP2
 
  173      INTEGER I,INFO,IX,IY,J,JX,JY,K,KK,KX,KY
 
  183      INTRINSIC dble,dconjg
 
  189      IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L')) 
THEN 
  191      ELSE IF (n.LT.0) 
THEN 
  193      ELSE IF (incx.EQ.0) 
THEN 
  195      ELSE IF (incy.EQ.0) 
THEN 
  199          CALL xerbla(
'ZHPMV ',info)
 
  205      IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one))) 
RETURN 
  225      IF (beta.NE.one) 
THEN 
  227              IF (beta.EQ.zero) 
THEN 
  238              IF (beta.EQ.zero) 
THEN 
  251      IF (alpha.EQ.zero) 
RETURN 
  253      IF (lsame(uplo,
'U')) 
THEN 
  257          IF ((incx.EQ.1) .AND. (incy.EQ.1)) 
THEN 
  263                      y(i) = y(i) + temp1*ap(k)
 
  264                      temp2 = temp2 + dconjg(ap(k))*x(i)
 
  267                  y(j) = y(j) + temp1*dble(ap(kk+j-1)) + alpha*temp2
 
  278                  DO 70 k = kk,kk + j - 2
 
  279                      y(iy) = y(iy) + temp1*ap(k)
 
  280                      temp2 = temp2 + dconjg(ap(k))*x(ix)
 
  284                  y(jy) = y(jy) + temp1*dble(ap(kk+j-1)) + alpha*temp2
 
  294          IF ((incx.EQ.1) .AND. (incy.EQ.1)) 
THEN 
  298                  y(j) = y(j) + temp1*dble(ap(kk))
 
  301                      y(i) = y(i) + temp1*ap(k)
 
  302                      temp2 = temp2 + dconjg(ap(k))*x(i)
 
  305                  y(j) = y(j) + alpha*temp2
 
  314                  y(jy) = y(jy) + temp1*dble(ap(kk))
 
  317                  DO 110 k = kk + 1,kk + n - j
 
  320                      y(iy) = y(iy) + temp1*ap(k)
 
  321                      temp2 = temp2 + dconjg(ap(k))*x(ix)
 
  323                  y(jy) = y(jy) + alpha*temp2
 
 
subroutine zhpmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
ZHPMV