1 SUBROUTINE csymv( UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY )
10 INTEGER incx, incy, lda, n
14 COMPLEX a( lda, * ), x( * ), y( * )
100 parameter( one = ( 1.0e+0, 0.0e+0 ) )
102 parameter( zero = ( 0.0e+0, 0.0e+0 ) )
105 INTEGER i, info, ix, iy, j, jx, jy, kx, ky
123 IF( .NOT.lsame(
uplo,
'U' ) .AND. .NOT.lsame(
uplo,
'L' ) )
THEN
125 ELSE IF( n.LT.0 )
THEN
127 ELSE IF( lda.LT.
max( 1, n ) )
THEN
129 ELSE IF( incx.EQ.0 )
THEN
131 ELSE IF( incy.EQ.0 )
THEN
135 CALL
xerbla(
'CSYMV ', info )
141 IF( ( n.EQ.0 ) .OR. ( ( alpha.EQ.zero ) .AND. ( beta.EQ.one ) ) )
149 kx = 1 - ( n-1 )*incx
154 ky = 1 - ( n-1 )*incy
163 IF( beta.NE.one )
THEN
165 IF( beta.EQ.zero )
THEN
176 IF( beta.EQ.zero )
THEN
183 y( iy ) = beta*y( iy )
191 IF( lsame(
uplo,
'U' ) )
THEN
195 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
200 y( i ) = y( i ) + temp1*a( i, j )
201 temp2 = temp2 + a( i, j )*x( i )
203 y( j ) = y( j ) + temp1*a( j, j ) + alpha*temp2
209 temp1 = alpha*x( jx )
214 y( iy ) = y( iy ) + temp1*a( i, j )
215 temp2 = temp2 + a( i, j )*x( ix )
219 y( jy ) = y( jy ) + temp1*a( j, j ) + alpha*temp2
228 IF( ( incx.EQ.1 ) .AND. ( incy.EQ.1 ) )
THEN
232 y( j ) = y( j ) + temp1*a( j, j )
234 y( i ) = y( i ) + temp1*a( i, j )
235 temp2 = temp2 + a( i, j )*x( i )
237 y( j ) = y( j ) + alpha*temp2
243 temp1 = alpha*x( jx )
245 y( jy ) = y( jy ) + temp1*a( j, j )
251 y( iy ) = y( iy ) + temp1*a( i, j )
252 temp2 = temp2 + a( i, j )*x( ix )
254 y( jy ) = y( jy ) + alpha*temp2