146 SUBROUTINE dsyr2(UPLO,N,ALPHA,X,INCX,Y,INCY,A,LDA)
153 DOUBLE PRECISION ALPHA
154 INTEGER INCX,INCY,LDA,N
158 DOUBLE PRECISION A(LDA,*),X(*),Y(*)
164 DOUBLE PRECISION ZERO
165 parameter(zero=0.0d+0)
168 DOUBLE PRECISION TEMP1,TEMP2
169 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY
185 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN
187 ELSE IF (n.LT.0)
THEN
189 ELSE IF (incx.EQ.0)
THEN
191 ELSE IF (incy.EQ.0)
THEN
193 ELSE IF (lda.LT.max(1,n))
THEN
197 CALL xerbla(
'DSYR2 ',info)
203 IF ((n.EQ.0) .OR. (alpha.EQ.zero))
RETURN
208 IF ((incx.NE.1) .OR. (incy.NE.1))
THEN
227 IF (lsame(uplo,
'U'))
THEN
231 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
233 IF ((x(j).NE.zero) .OR. (y(j).NE.zero))
THEN
237 a(i,j) = a(i,j) + x(i)*temp1 + y(i)*temp2
243 IF ((x(jx).NE.zero) .OR. (y(jy).NE.zero))
THEN
249 a(i,j) = a(i,j) + x(ix)*temp1 + y(iy)*temp2
262 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
264 IF ((x(j).NE.zero) .OR. (y(j).NE.zero))
THEN
268 a(i,j) = a(i,j) + x(i)*temp1 + y(i)*temp2
274 IF ((x(jx).NE.zero) .OR. (y(jy).NE.zero))
THEN
280 a(i,j) = a(i,j) + x(ix)*temp1 + y(iy)*temp2
subroutine dsyr2(uplo, n, alpha, x, incx, y, incy, a, lda)
DSYR2