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)
subroutine dspmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
DSPMV