1 SUBROUTINE cspmv( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY )
14 COMPLEX ap( * ), x( * ), y( * )
97 parameter( one = ( 1.0e+0, 0.0e+0 ) )
99 parameter( zero = ( 0.0e+0, 0.0e+0 ) )
102 INTEGER i, info, ix, iy, j, jx, jy, k, kk, kx, ky
117 IF( .NOT.lsame(
uplo,
'U' ) .AND. .NOT.lsame(
uplo,
'L' ) )
THEN
119 ELSE IF( n.LT.0 )
THEN
121 ELSE IF( incx.EQ.0 )
THEN
123 ELSE IF( incy.EQ.0 )
THEN
127 CALL
xerbla(
'CSPMV ', info )
133 IF( ( n.EQ.0 ) .OR. ( ( alpha.EQ.zero ) .AND. ( beta.EQ.one ) ) )
141 kx = 1 - ( n-1 )*incx
146 ky = 1 - ( n-1 )*incy
154 IF( beta.NE.one )
THEN
156 IF( beta.EQ.zero )
THEN
167 IF( beta.EQ.zero )
THEN
174 y( iy ) = beta*y( iy )
183 IF( lsame(
uplo,
'U' ) )
THEN
187 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
193 y( i ) = y( i ) + temp1*ap( k )
194 temp2 = temp2 + ap( k )*x( i )
197 y( j ) = y( j ) + temp1*ap( kk+j-1 ) + alpha*temp2
204 temp1 = alpha*x( jx )
208 DO 70 k = kk, kk + j - 2
209 y( iy ) = y( iy ) + temp1*ap( k )
210 temp2 = temp2 + ap( k )*x( ix )
214 y( jy ) = y( jy ) + temp1*ap( kk+j-1 ) + alpha*temp2
224 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
228 y( j ) = y( j ) + temp1*ap( kk )
231 y( i ) = y( i ) + temp1*ap( k )
232 temp2 = temp2 + ap( k )*x( i )
235 y( j ) = y( j ) + alpha*temp2
242 temp1 = alpha*x( jx )
244 y( jy ) = y( jy ) + temp1*ap( kk )
247 DO 110 k = kk + 1, kk + n - j
250 y( iy ) = y( iy ) + temp1*ap( k )
251 temp2 = temp2 + ap( k )*x( ix )
253 y( jy ) = y( jy ) + alpha*temp2