157 SUBROUTINE zgemv(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
164 COMPLEX*16 ALPHA,BETA
165 INTEGER INCX,INCY,LDA,M,N
169 COMPLEX*16 A(LDA,*),X(*),Y(*)
176 parameter(one= (1.0d+0,0.0d+0))
178 parameter(zero= (0.0d+0,0.0d+0))
182 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY,LENX,LENY
199 IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
200 + .NOT.lsame(trans,
'C'))
THEN
202 ELSE IF (m.LT.0)
THEN
204 ELSE IF (n.LT.0)
THEN
206 ELSE IF (lda.LT.max(1,m))
THEN
208 ELSE IF (incx.EQ.0)
THEN
210 ELSE IF (incy.EQ.0)
THEN
214 CALL xerbla(
'ZGEMV ',info)
220 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
221 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
223 noconj = lsame(trans,
'T')
228 IF (lsame(trans,
'N'))
THEN
238 kx = 1 - (lenx-1)*incx
243 ky = 1 - (leny-1)*incy
251 IF (beta.NE.one)
THEN
253 IF (beta.EQ.zero)
THEN
264 IF (beta.EQ.zero)
THEN
277 IF (alpha.EQ.zero)
RETURN
278 IF (lsame(trans,
'N'))
THEN
287 y(i) = y(i) + temp*a(i,j)
296 y(iy) = y(iy) + temp*a(i,j)
312 temp = temp + a(i,j)*x(i)
316 temp = temp + dconjg(a(i,j))*x(i)
319 y(jy) = y(jy) + alpha*temp
328 temp = temp + a(i,j)*x(ix)
333 temp = temp + dconjg(a(i,j))*x(ix)
337 y(jy) = y(jy) + alpha*temp
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV