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