188 SUBROUTINE zgbmv(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,
196 COMPLEX*16 ALPHA,BETA
197 INTEGER INCX,INCY,KL,KU,LDA,M,N
201 COMPLEX*16 A(LDA,*),X(*),Y(*)
208 parameter(one= (1.0d+0,0.0d+0))
210 parameter(zero= (0.0d+0,0.0d+0))
214 INTEGER I,INFO,IX,IY,J,JX,JY,K,KUP1,KX,KY,LENX,LENY
225 INTRINSIC dconjg,max,min
231 IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
232 + .NOT.lsame(trans,
'C'))
THEN
234 ELSE IF (m.LT.0)
THEN
236 ELSE IF (n.LT.0)
THEN
238 ELSE IF (kl.LT.0)
THEN
240 ELSE IF (ku.LT.0)
THEN
242 ELSE IF (lda.LT. (kl+ku+1))
THEN
244 ELSE IF (incx.EQ.0)
THEN
246 ELSE IF (incy.EQ.0)
THEN
250 CALL xerbla(
'ZGBMV ',info)
256 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
257 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
259 noconj = lsame(trans,
'T')
264 IF (lsame(trans,
'N'))
THEN
274 kx = 1 - (lenx-1)*incx
279 ky = 1 - (leny-1)*incy
287 IF (beta.NE.one)
THEN
289 IF (beta.EQ.zero)
THEN
300 IF (beta.EQ.zero)
THEN
313 IF (alpha.EQ.zero)
RETURN
315 IF (lsame(trans,
'N'))
THEN
324 DO 50 i = max(1,j-ku),min(m,j+kl)
325 y(i) = y(i) + temp*a(k+i,j)
334 DO 70 i = max(1,j-ku),min(m,j+kl)
335 y(iy) = y(iy) + temp*a(k+i,j)
339 IF (j.GT.ku) ky = ky + incy
352 DO 90 i = max(1,j-ku),min(m,j+kl)
353 temp = temp + a(k+i,j)*x(i)
356 DO 100 i = max(1,j-ku),min(m,j+kl)
357 temp = temp + dconjg(a(k+i,j))*x(i)
360 y(jy) = y(jy) + alpha*temp
369 DO 120 i = max(1,j-ku),min(m,j+kl)
370 temp = temp + a(k+i,j)*x(ix)
374 DO 130 i = max(1,j-ku),min(m,j+kl)
375 temp = temp + dconjg(a(k+i,j))*x(ix)
379 y(jy) = y(jy) + alpha*temp
381 IF (j.GT.ku) kx = kx + incx
subroutine xerbla(srname, info)
subroutine zgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)
ZGBMV