129      SUBROUTINE zhpr(UPLO,N,ALPHA,X,INCX,AP)
 
  136      DOUBLE PRECISION ALPHA
 
  141      COMPLEX*16 AP(*),X(*)
 
  148      parameter(zero= (0.0d+0,0.0d+0))
 
  152      INTEGER I,INFO,IX,J,JX,K,KK,KX
 
  162      INTRINSIC dble,dconjg
 
  168      IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L')) 
THEN 
  170      ELSE IF (n.LT.0) 
THEN 
  172      ELSE IF (incx.EQ.0) 
THEN 
  182      IF ((n.EQ.0) .OR. (alpha.EQ.dble(zero))) 
RETURN 
  188      ELSE IF (incx.NE.1) 
THEN 
  196      IF (lsame(uplo,
'U')) 
THEN 
  202                  IF (x(j).NE.zero) 
THEN 
  203                      temp = alpha*dconjg(x(j))
 
  206                          ap(k) = ap(k) + x(i)*temp
 
  209                      ap(kk+j-1) = dble(ap(kk+j-1)) + dble(x(j)*temp)
 
  211                      ap(kk+j-1) = dble(ap(kk+j-1))
 
  218                  IF (x(jx).NE.zero) 
THEN 
  219                      temp = alpha*dconjg(x(jx))
 
  221                      DO 30 k = kk,kk + j - 2
 
  222                          ap(k) = ap(k) + x(ix)*temp
 
  225                      ap(kk+j-1) = dble(ap(kk+j-1)) + dble(x(jx)*temp)
 
  227                      ap(kk+j-1) = dble(ap(kk+j-1))
 
  239                  IF (x(j).NE.zero) 
THEN 
  240                      temp = alpha*dconjg(x(j))
 
  241                      ap(kk) = dble(ap(kk)) + dble(temp*x(j))
 
  244                          ap(k) = ap(k) + x(i)*temp
 
  248                      ap(kk) = dble(ap(kk))
 
  255                  IF (x(jx).NE.zero) 
THEN 
  256                      temp = alpha*dconjg(x(jx))
 
  257                      ap(kk) = dble(ap(kk)) + dble(temp*x(jx))
 
  259                      DO 70 k = kk + 1,kk + n - j
 
  261                          ap(k) = ap(k) + x(ix)*temp
 
  264                      ap(kk) = dble(ap(kk))
 
 
subroutine zhpr(uplo, n, alpha, x, incx, ap)
ZHPR