186 SUBROUTINE cgbmv(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
194 INTEGER INCX,INCY,KL,KU,LDA,M,N
198 COMPLEX A(LDA,*),X(*),Y(*)
205 parameter(one= (1.0e+0,0.0e+0))
207 parameter(zero= (0.0e+0,0.0e+0))
211 INTEGER I,INFO,IX,IY,J,JX,JY,K,KUP1,KX,KY,LENX,LENY
222 INTRINSIC conjg,max,min
228 IF (.NOT.lsame(trans,
'N') .AND. .NOT.lsame(trans,
'T') .AND.
229 + .NOT.lsame(trans,
'C'))
THEN
231 ELSE IF (m.LT.0)
THEN
233 ELSE IF (n.LT.0)
THEN
235 ELSE IF (kl.LT.0)
THEN
237 ELSE IF (ku.LT.0)
THEN
239 ELSE IF (lda.LT. (kl+ku+1))
THEN
241 ELSE IF (incx.EQ.0)
THEN
243 ELSE IF (incy.EQ.0)
THEN
247 CALL xerbla(
'CGBMV ',info)
253 IF ((m.EQ.0) .OR. (n.EQ.0) .OR.
254 + ((alpha.EQ.zero).AND. (beta.EQ.one)))
RETURN
256 noconj = lsame(trans,
'T')
261 IF (lsame(trans,
'N'))
THEN
271 kx = 1 - (lenx-1)*incx
276 ky = 1 - (leny-1)*incy
284 IF (beta.NE.one)
THEN
286 IF (beta.EQ.zero)
THEN
297 IF (beta.EQ.zero)
THEN
310 IF (alpha.EQ.zero)
RETURN
312 IF (lsame(trans,
'N'))
THEN
321 DO 50 i = max(1,j-ku),min(m,j+kl)
322 y(i) = y(i) + temp*a(k+i,j)
331 DO 70 i = max(1,j-ku),min(m,j+kl)
332 y(iy) = y(iy) + temp*a(k+i,j)
336 IF (j.GT.ku) ky = ky + incy
349 DO 90 i = max(1,j-ku),min(m,j+kl)
350 temp = temp + a(k+i,j)*x(i)
353 DO 100 i = max(1,j-ku),min(m,j+kl)
354 temp = temp + conjg(a(k+i,j))*x(i)
357 y(jy) = y(jy) + alpha*temp
366 DO 120 i = max(1,j-ku),min(m,j+kl)
367 temp = temp + a(k+i,j)*x(ix)
371 DO 130 i = max(1,j-ku),min(m,j+kl)
372 temp = temp + conjg(a(k+i,j))*x(ix)
376 y(jy) = y(jy) + alpha*temp
378 IF (j.GT.ku) kx = kx + incx
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cgbmv(TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGBMV