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