146 SUBROUTINE dspmv(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY)
153 DOUBLE PRECISION ALPHA,BETA
158 DOUBLE PRECISION AP(*),X(*),Y(*)
164 DOUBLE PRECISION ONE,ZERO
165 parameter(one=1.0d+0,zero=0.0d+0)
168 DOUBLE PRECISION TEMP1,TEMP2
169 INTEGER I,INFO,IX,IY,J,JX,JY,K,KK,KX,KY
182 IF (.NOT.lsame(uplo,
'U') .AND. .NOT.lsame(uplo,
'L'))
THEN 184 ELSE IF (n.LT.0)
THEN 186 ELSE IF (incx.EQ.0)
THEN 188 ELSE IF (incy.EQ.0)
THEN 192 CALL xerbla(
'DSPMV ',info)
198 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN 218 IF (beta.NE.one)
THEN 220 IF (beta.EQ.zero)
THEN 231 IF (beta.EQ.zero)
THEN 244 IF (alpha.EQ.zero)
RETURN 246 IF (lsame(uplo,
'U'))
THEN 250 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN 256 y(i) = y(i) + temp1*ap(k)
257 temp2 = temp2 + ap(k)*x(i)
260 y(j) = y(j) + temp1*ap(kk+j-1) + alpha*temp2
271 DO 70 k = kk,kk + j - 2
272 y(iy) = y(iy) + temp1*ap(k)
273 temp2 = temp2 + ap(k)*x(ix)
277 y(jy) = y(jy) + temp1*ap(kk+j-1) + alpha*temp2
287 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN 291 y(j) = y(j) + temp1*ap(kk)
294 y(i) = y(i) + temp1*ap(k)
295 temp2 = temp2 + ap(k)*x(i)
298 y(j) = y(j) + alpha*temp2
307 y(jy) = y(jy) + temp1*ap(kk)
310 DO 110 k = kk + 1,kk + n - j
313 y(iy) = y(iy) + temp1*ap(k)
314 temp2 = temp2 + ap(k)*x(ix)
316 y(jy) = y(jy) + alpha*temp2
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dspmv(UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY)
DSPMV