152 SUBROUTINE csbmv( UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y,
162 INTEGER INCX, INCY, K, LDA, N
166 COMPLEX A( lda, * ), X( * ), Y( * )
173 parameter ( one = ( 1.0e+0, 0.0e+0 ) )
175 parameter ( zero = ( 0.0e+0, 0.0e+0 ) )
178 INTEGER I, INFO, IX, IY, J, JX, JY, KPLUS1, KX, KY, L
196 IF( .NOT.lsame( uplo,
'U' ) .AND. .NOT.lsame( uplo,
'L' ) )
THEN
198 ELSE IF( n.LT.0 )
THEN
200 ELSE IF( k.LT.0 )
THEN
202 ELSE IF( lda.LT.( k+1 ) )
THEN
204 ELSE IF( incx.EQ.0 )
THEN
206 ELSE IF( incy.EQ.0 )
THEN
210 CALL xerbla(
'CSBMV ', info )
216 IF( ( n.EQ.0 ) .OR. ( ( alpha.EQ.zero ) .AND. ( beta.EQ.one ) ) )
224 kx = 1 - ( n-1 )*incx
229 ky = 1 - ( n-1 )*incy
237 IF( beta.NE.one )
THEN
239 IF( beta.EQ.zero )
THEN
250 IF( beta.EQ.zero )
THEN
257 y( iy ) = beta*y( iy )
265 IF( lsame( uplo,
'U' ) )
THEN
270 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
275 DO 50 i = max( 1, j-k ), j - 1
276 y( i ) = y( i ) + temp1*a( l+i, j )
277 temp2 = temp2 + a( l+i, j )*x( i )
279 y( j ) = y( j ) + temp1*a( kplus1, j ) + alpha*temp2
285 temp1 = alpha*x( jx )
290 DO 70 i = max( 1, j-k ), j - 1
291 y( iy ) = y( iy ) + temp1*a( l+i, j )
292 temp2 = temp2 + a( l+i, j )*x( ix )
296 y( jy ) = y( jy ) + temp1*a( kplus1, j ) + alpha*temp2
309 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
313 y( j ) = y( j ) + temp1*a( 1, j )
315 DO 90 i = j + 1, min( n, j+k )
316 y( i ) = y( i ) + temp1*a( l+i, j )
317 temp2 = temp2 + a( l+i, j )*x( i )
319 y( j ) = y( j ) + alpha*temp2
325 temp1 = alpha*x( jx )
327 y( jy ) = y( jy ) + temp1*a( 1, j )
331 DO 110 i = j + 1, min( n, j+k )
334 y( iy ) = y( iy ) + temp1*a( l+i, j )
335 temp2 = temp2 + a( l+i, j )*x( ix )
337 y( jy ) = y( jy ) + alpha*temp2
subroutine csbmv(UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CSBMV
subroutine xerbla(SRNAME, INFO)
XERBLA