159 SUBROUTINE zgemv(TRANS,M,N,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
166 COMPLEX*16 ALPHA,BETA
167 INTEGER INCX,INCY,LDA,M,N
171 COMPLEX*16 A(LDA,*),X(*),Y(*)
178 parameter(one= (1.0d+0,0.0d+0))
180 parameter(zero= (0.0d+0,0.0d+0))
184 INTEGER I,INFO,IX,IY,J,JX,JY,KX,KY,LENX,LENY
201 IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
202 + .NOT.lsame(trans,
'C'))
THEN
204 ELSE IF (m.LT.0)
THEN
206 ELSE IF (n.LT.0)
THEN
208 ELSE IF (lda.LT.max(1,m))
THEN
210 ELSE IF (incx.EQ.0)
THEN
212 ELSE IF (incy.EQ.0)
THEN
216 CALL xerbla(
'ZGEMV ',info)
222 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
223 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
225 noconj = lsame(trans,
'T')
230 IF (lsame(trans,
'N'))
THEN
240 kx = 1 - (lenx-1)*incx
245 ky = 1 - (leny-1)*incy
253 IF (beta.NE.one)
THEN
255 IF (beta.EQ.zero)
THEN
266 IF (beta.EQ.zero)
THEN
279 IF (alpha.EQ.zero)
RETURN
280 IF (lsame(trans,
'N'))
THEN
289 y(i) = y(i) + temp*a(i,j)
298 y(iy) = y(iy) + temp*a(i,j)
314 temp = temp + a(i,j)*x(i)
318 temp = temp + dconjg(a(i,j))*x(i)
321 y(jy) = y(jy) + alpha*temp
330 temp = temp + a(i,j)*x(ix)
335 temp = temp + dconjg(a(i,j))*x(ix)
339 y(jy) = y(jy) + alpha*temp
subroutine xerbla(srname, info)
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV