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