177 SUBROUTINE cla_syamv( UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y,
186 INTEGER INCX, INCY, LDA, N
190 COMPLEX A( LDA, * ), X( * )
198 parameter( one = 1.0e+0, zero = 0.0e+0 )
203 INTEGER I, INFO, IY, J, JX, KX, KY
215 INTRINSIC max, abs, sign, real, aimag
221 cabs1( zdum ) = abs( real( zdum ) ) + abs( aimag( zdum ) )
228 IF ( uplo.NE.ilauplo(
'U' ) .AND.
229 $ uplo.NE.ilauplo(
'L' ) )
THEN
231 ELSE IF( n.LT.0 )
THEN
233 ELSE IF( lda.LT.
maxTHEN
235 ELSE IF( incx.EQ.0 )
THEN
237 ELSE IF( incy.EQ.0 )
THEN
247.EQ..OR..EQ..AND..EQ.
IF( ( N0 )( ( ALPHAZERO )( BETAONE ) ) )
255 KX = 1 - ( N - 1 )*INCX
260 KY = 1 - ( N - 1 )*INCY
266 SAFE1 = SLAMCH( 'safe minimum
' )
276.EQ.
IF ( INCX1 ) THEN
277.EQ.
IF ( UPLO ILAUPLO( 'u
' ) ) THEN
279.EQ.
IF ( BETA ZERO ) THEN
282.EQ.
ELSE IF ( Y( IY ) ZERO ) THEN
286 Y( IY ) = BETA * ABS( Y( IY ) )
288.NE.
IF ( ALPHA ZERO ) THEN
290 TEMP = CABS1( A( J, I ) )
291.AND.
SYMB_ZERO = SYMB_ZERO
292.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
294 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( J ) )*TEMP
297 TEMP = CABS1( A( I, J ) )
298.AND.
SYMB_ZERO = SYMB_ZERO
299.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
301 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( J ) )*TEMP
305.NOT.
IF ( SYMB_ZERO )
306 $ Y( IY ) = Y( IY ) + SIGN( SAFE1, Y( IY ) )
312.EQ.
IF ( BETA ZERO ) THEN
315.EQ.
ELSE IF ( Y( IY ) ZERO ) THEN
319 Y( IY ) = BETA * ABS( Y( IY ) )
321.NE.
IF ( ALPHA ZERO ) THEN
323 TEMP = CABS1( A( I, J ) )
324.AND.
SYMB_ZERO = SYMB_ZERO
325.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
327 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( J ) )*TEMP
330 TEMP = CABS1( A( J, I ) )
331.AND.
SYMB_ZERO = SYMB_ZERO
332.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
334 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( J ) )*TEMP
338.NOT.
IF ( SYMB_ZERO )
339 $ Y( IY ) = Y( IY ) + SIGN( SAFE1, Y( IY ) )
345.EQ.
IF ( UPLO ILAUPLO( 'u
' ) ) THEN
347.EQ.
IF ( BETA ZERO ) THEN
350.EQ.
ELSE IF ( Y( IY ) ZERO ) THEN
354 Y( IY ) = BETA * ABS( Y( IY ) )
357.NE.
IF ( ALPHA ZERO ) THEN
359 TEMP = CABS1( A( J, I ) )
360.AND.
SYMB_ZERO = SYMB_ZERO
361.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
363 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( JX ) )*TEMP
367 TEMP = CABS1( A( I, J ) )
368.AND.
SYMB_ZERO = SYMB_ZERO
369.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
371 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( JX ) )*TEMP
376.NOT.
IF ( SYMB_ZERO )
377 $ Y( IY ) = Y( IY ) + SIGN( SAFE1, Y( IY ) )
383.EQ.
IF ( BETA ZERO ) THEN
386.EQ.
ELSE IF ( Y( IY ) ZERO ) THEN
390 Y( IY ) = BETA * ABS( Y( IY ) )
393.NE.
IF ( ALPHA ZERO ) THEN
395 TEMP = CABS1( A( I, J ) )
396.AND.
SYMB_ZERO = SYMB_ZERO
397.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
399 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( JX ) )*TEMP
403 TEMP = CABS1( A( J, I ) )
404.AND.
SYMB_ZERO = SYMB_ZERO
405.EQ..OR..EQ.
$ ( X( J ) ZERO TEMP ZERO )
407 Y( IY ) = Y( IY ) + ALPHA*CABS1( X( JX ) )*TEMP
412.NOT.
IF ( SYMB_ZERO )
413 $ Y( IY ) = Y( IY ) + SIGN( SAFE1, Y( IY ) )
subroutine cla_syamv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
CLA_SYAMV computes a matrix-vector product using a symmetric indefinite matrix to calculate error bou...