155 SUBROUTINE sgemv(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
163 INTEGER INCX,INCY,LDA,M,N
167 REAL A(LDA,*),X(*),Y(*)
174 parameter(one=1.0e+0,zero=0.0e+0)
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(
'SGEMV ',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 sgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SGEMV