148 SUBROUTINE dspmv(UPLO,N,ALPHA,AP,X,INCX,BETA,Y,INCY)
156 DOUBLE PRECISION ALPHA,BETA
161 DOUBLE PRECISION AP(*),X(*),Y(*)
167 DOUBLE PRECISION ONE,ZERO
168 parameter(one=1.0d+0,zero=0.0d+0)
171 DOUBLE PRECISION TEMP1,TEMP2
172 INTEGER I,INFO,IX,IY,J,JX,JY,K,KK,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
195 CALL xerbla(
'DSPMV ',info)
201 IF ((n.EQ.0) .OR. ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
221 IF (beta.NE.one)
THEN
223 IF (beta.EQ.zero)
THEN
234 IF (beta.EQ.zero)
THEN
247 IF (alpha.EQ.zero)
RETURN
249 IF (lsame(uplo,
'U'))
THEN
253 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
259 y(i) = y(i) + temp1*ap(k)
260 temp2 = temp2 + ap(k)*x(i)
263 y(j) = y(j) + temp1*ap(kk+j-1) + alpha*temp2
274 DO 70 k = kk,kk + j - 2
275 y(iy) = y(iy) + temp1*ap(k)
276 temp2 = temp2 + ap(k)*x(ix)
280 y(jy) = y(jy) + temp1*ap(kk+j-1) + alpha*temp2
290 IF ((incx.EQ.1) .AND. (incy.EQ.1))
THEN
294 y(j) = y(j) + temp1*ap(kk)
297 y(i) = y(i) + temp1*ap(k)
298 temp2 = temp2 + ap(k)*x(i)
301 y(j) = y(j) + alpha*temp2
310 y(jy) = y(jy) + temp1*ap(kk)
313 DO 110 k = kk + 1,kk + n - j
316 y(iy) = y(iy) + temp1*ap(k)
317 temp2 = temp2 + ap(k)*x(ix)
319 y(jy) = y(jy) + alpha*temp2
subroutine dspmv(UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY)
DSPMV
subroutine xerbla(SRNAME, INFO)
XERBLA