157 SUBROUTINE dgemv(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
165 DOUBLE PRECISION ALPHA,BETA
166 INTEGER INCX,INCY,LDA,M,N
170 DOUBLE PRECISION A(lda,*),X(*),Y(*)
176 DOUBLE PRECISION ONE,ZERO
177 parameter(one=1.0d+0,zero=0.0d+0)
180 DOUBLE PRECISION TEMP
181 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY,LENX,LENY
197 IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
198 + .NOT.lsame(trans,
'C'))
THEN 200 ELSE IF (m.LT.0)
THEN 202 ELSE IF (n.LT.0)
THEN 204 ELSE IF (lda.LT.max(1,m))
THEN 206 ELSE IF (incx.EQ.0)
THEN 208 ELSE IF (incy.EQ.0)
THEN 212 CALL xerbla(
'DGEMV ',info)
218 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
219 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN 224 IF (lsame(trans,
'N'))
THEN 234 kx = 1 - (lenx-1)*incx
239 ky = 1 - (leny-1)*incy
247 IF (beta.NE.one)
THEN 249 IF (beta.EQ.zero)
THEN 260 IF (beta.EQ.zero)
THEN 273 IF (alpha.EQ.zero)
RETURN 274 IF (lsame(trans,
'N'))
THEN 283 y(i) = y(i) + temp*a(i,j)
292 y(iy) = y(iy) + temp*a(i,j)
307 temp = temp + a(i,j)*x(i)
309 y(jy) = y(jy) + alpha*temp
317 temp = temp + a(i,j)*x(ix)
320 y(jy) = y(jy) + alpha*temp
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA