157 SUBROUTINE dgemv(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
164 DOUBLE PRECISION ALPHA,BETA
165 INTEGER INCX,INCY,LDA,M,N
169 DOUBLE PRECISION A(LDA,*),X(*),Y(*)
175 DOUBLE PRECISION ONE,ZERO
176 parameter(one=1.0d+0,zero=0.0d+0)
179 DOUBLE PRECISION TEMP
180 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY,LENX,LENY
196 IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
197 + .NOT.lsame(trans,
'C'))
THEN
199 ELSE IF (m.LT.0)
THEN
201 ELSE IF (n.LT.0)
THEN
203 ELSE IF (lda.LT.max(1,m))
THEN
205 ELSE IF (incx.EQ.0)
THEN
207 ELSE IF (incy.EQ.0)
THEN
211 CALL xerbla(
'DGEMV ',info)
217 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
218 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
223 IF (lsame(trans,
'N'))
THEN
233 kx = 1 - (lenx-1)*incx
238 ky = 1 - (leny-1)*incy
246 IF (beta.NE.one)
THEN
248 IF (beta.EQ.zero)
THEN
259 IF (beta.EQ.zero)
THEN
272 IF (alpha.EQ.zero)
RETURN
273 IF (lsame(trans,
'N'))
THEN
282 y(i) = y(i) + temp*a(i,j)
291 y(iy) = y(iy) + temp*a(i,j)
306 temp = temp + a(i,j)*x(i)
308 y(jy) = y(jy) + alpha*temp
316 temp = temp + a(i,j)*x(ix)
319 y(jy) = y(jy) + alpha*temp
subroutine xerbla(srname, info)
subroutine dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
DGEMV