153 SUBROUTINE dsymv(UPLO,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
161 DOUBLE PRECISION alpha,beta
162 INTEGER incx,incy,lda,n
166 DOUBLE PRECISION a(lda,*),x(*),y(*)
172 DOUBLE PRECISION one,zero
173 parameter(one=1.0d+0,zero=0.0d+0)
176 DOUBLE PRECISION temp1,temp2
177 INTEGER i,info,ix,iy,j,jx,jy,kx,ky
193 IF (.NOT.
lsame(uplo,
'U') .AND. .NOT.
lsame(uplo,
'L'))
THEN
195 ELSE IF (n.LT.0)
THEN
197 ELSE IF (lda.LT.max(1,n))
THEN
199 ELSE IF (incx.EQ.0)
THEN
201 ELSE IF (incy.EQ.0)
THEN
205 CALL
xerbla(
'DSYMV ',info)
211 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one))) return
232 IF (beta.NE.one)
THEN
234 IF (beta.EQ.zero)
THEN
245 IF (beta.EQ.zero)
THEN
258 IF (alpha.EQ.zero) return
259 IF (
lsame(uplo,
'U'))
THEN
263 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
268 y(i) = y(i) + temp1*a(i,j)
269 temp2 = temp2 + a(i,j)*x(i)
271 y(j) = y(j) + temp1*a(j,j) + alpha*temp2
282 y(iy) = y(iy) + temp1*a(i,j)
283 temp2 = temp2 + a(i,j)*x(ix)
287 y(jy) = y(jy) + temp1*a(j,j) + alpha*temp2
296 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
300 y(j) = y(j) + temp1*a(j,j)
302 y(i) = y(i) + temp1*a(i,j)
303 temp2 = temp2 + a(i,j)*x(i)
305 y(j) = y(j) + alpha*temp2
313 y(jy) = y(jy) + temp1*a(j,j)
319 y(iy) = y(iy) + temp1*a(i,j)
320 temp2 = temp2 + a(i,j)*x(ix)
322 y(jy) = y(jy) + alpha*temp2