149 SUBROUTINE zher2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA)
157 INTEGER INCX,INCY,LDA,N
161 COMPLEX*16 A(lda,*),X(*),Y(*)
168 parameter(zero= (0.0d+0,0.0d+0))
171 COMPLEX*16 TEMP1,TEMP2
172 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY
182 INTRINSIC dble,dconjg,max
188 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN 190 ELSE IF (n.LT.0)
THEN 192 ELSE IF (incx.EQ.0)
THEN 194 ELSE IF (incy.EQ.0)
THEN 196 ELSE IF (lda.LT.max(1,n))
THEN 200 CALL xerbla(
'ZHER2 ',info)
206 IF ((n.EQ.0) .OR. (alpha.EQ.zero))
RETURN 211 IF ((incx.NE.1) .OR. (incy.NE.1))
THEN 230 IF (lsame(uplo,
'U'))
THEN 234 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN 236 IF ((x(j).NE.zero) .OR. (y(j).NE.zero))
THEN 237 temp1 = alpha*dconjg(y(j))
238 temp2 = dconjg(alpha*x(j))
240 a(i,j) = a(i,j) + x(i)*temp1 + y(i)*temp2
242 a(j,j) = dble(a(j,j)) +
243 + dble(x(j)*temp1+y(j)*temp2)
245 a(j,j) = dble(a(j,j))
250 IF ((x(jx).NE.zero) .OR. (y(jy).NE.zero))
THEN 251 temp1 = alpha*dconjg(y(jy))
252 temp2 = dconjg(alpha*x(jx))
256 a(i,j) = a(i,j) + x(ix)*temp1 + y(iy)*temp2
260 a(j,j) = dble(a(j,j)) +
261 + dble(x(jx)*temp1+y(jy)*temp2)
263 a(j,j) = dble(a(j,j))
273 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN 275 IF ((x(j).NE.zero) .OR. (y(j).NE.zero))
THEN 276 temp1 = alpha*dconjg(y(j))
277 temp2 = dconjg(alpha*x(j))
278 a(j,j) = dble(a(j,j)) +
279 + dble(x(j)*temp1+y(j)*temp2)
281 a(i,j) = a(i,j) + x(i)*temp1 + y(i)*temp2
284 a(j,j) = dble(a(j,j))
289 IF ((x(jx).NE.zero) .OR. (y(jy).NE.zero))
THEN 290 temp1 = alpha*dconjg(y(jy))
291 temp2 = dconjg(alpha*x(jx))
292 a(j,j) = dble(a(j,j)) +
293 + dble(x(jx)*temp1+y(jy)*temp2)
299 a(i,j) = a(i,j) + x(ix)*temp1 + y(iy)*temp2
302 a(j,j) = dble(a(j,j))
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zher2(UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZHER2