155 SUBROUTINE dgemv(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
162 DOUBLE PRECISION ALPHA,BETA
163 INTEGER INCX,INCY,LDA,M,N
167 DOUBLE PRECISION A(lda,*),X(*),Y(*)
173 DOUBLE PRECISION ONE,ZERO
174 parameter(one=1.0d+0,zero=0.0d+0)
177 DOUBLE PRECISION TEMP
178 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY,LENX,LENY
194 IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
195 + .NOT.lsame(trans,
'C'))
THEN 197 ELSE IF (m.LT.0)
THEN 199 ELSE IF (n.LT.0)
THEN 201 ELSE IF (lda.LT.max(1,m))
THEN 203 ELSE IF (incx.EQ.0)
THEN 205 ELSE IF (incy.EQ.0)
THEN 209 CALL xerbla(
'DGEMV ',info)
215 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
216 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN 221 IF (lsame(trans,
'N'))
THEN 231 kx = 1 - (lenx-1)*incx
236 ky = 1 - (leny-1)*incy
244 IF (beta.NE.one)
THEN 246 IF (beta.EQ.zero)
THEN 257 IF (beta.EQ.zero)
THEN 270 IF (alpha.EQ.zero)
RETURN 271 IF (lsame(trans,
'N'))
THEN 280 y(i) = y(i) + temp*a(i,j)
289 y(iy) = y(iy) + temp*a(i,j)
304 temp = temp + a(i,j)*x(i)
306 y(jy) = y(jy) + alpha*temp
314 temp = temp + a(i,j)*x(ix)
317 y(jy) = y(jy) + alpha*temp
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV