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