1 SUBROUTINE sasymv( UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y,
11 INTEGER INCX, INCY, LDA, N
15 REAL A( LDA, * ), X( * ), Y( * )
90 parameter( one = 1.0e+0, zero = 0.0e+0 )
93 INTEGER I, INFO, IX, IY, J, JX, JY, KX, KY
94 REAL TALPHA, TEMP0, TEMP1, TEMP2
111 IF ( .NOT.lsame( uplo,
'U' ).AND.
112 $ .NOT.lsame( uplo,
'L' ) )
THEN
114 ELSE IF( n.LT.0 )
THEN
116 ELSE IF( lda.LT.
max( 1, n ) )
THEN
118 ELSE IF( incx.EQ.0 )
THEN
120 ELSE IF( incy.EQ.0 )
THEN
124 CALL xerbla(
'SASYMV', info )
130 IF( ( n.EQ.0 ).OR.( ( alpha.EQ.zero ).AND.( beta.EQ.one ) ) )
138 kx = 1 - ( n - 1 ) * incx
143 ky = 1 - ( n - 1 ) * incy
152 IF( beta.NE.one )
THEN
154 IF( beta.EQ.zero )
THEN
160 y( i ) = abs( beta * y( i ) )
165 IF( beta.EQ.zero )
THEN
172 y( iy ) = abs( beta * y( iy ) )
182 talpha = abs( alpha )
184 IF( lsame( uplo,
'U' ) )
THEN
188 IF( ( incx.EQ.1 ).AND.( incy.EQ.1 ) )
THEN
190 temp1 = talpha * abs( x( j ) )
193 temp0 = abs( a( i, j ) )
194 y( i ) = y( i ) + temp1 * temp0
195 temp2 = temp2 + temp0 * abs( x( i ) )
197 y( j ) = y( j ) + temp1 * abs( a( j, j ) ) +
208 temp1 = talpha * abs( x( jx ) )
214 temp0 = abs( a( i, j ) )
215 y( iy ) = y( iy ) + temp1 * temp0
216 temp2 = temp2 + temp0 * abs( x( ix ) )
220 y( jy ) = y( jy ) + temp1 * abs( a( j, j ) ) +
233 IF( ( incx.EQ.1 ).AND.( incy.EQ.1 ) )
THEN
237 temp1 = talpha * abs( x( j ) )
239 y( j ) = y( j ) + temp1 * abs( a( j, j ) )
242 temp0 = abs( a( i, j ) )
243 y( i ) = y( i ) + temp1 * temp0
244 temp2 = temp2 + temp0 * abs( x( i ) )
248 y( j ) = y( j ) + alpha * temp2
258 temp1 = talpha * abs( x( jx ) )
260 y( jy ) = y( jy ) + temp1 * abs( a( j, j ) )
268 temp0 = abs( a( i, j ) )
269 y( iy ) = y( iy ) + temp1 * temp0
270 temp2 = temp2 + temp0 * abs( x( ix ) )
274 y( jy ) = y( jy ) + alpha * temp2