1 SUBROUTINE spot01( UPLO, N, A, LDA, AFAC, LDAFAC, RWORK, RESID )
13 REAL a( lda, * ), afac( ldafac, * ), rwork( * )
62 parameter( zero = 0.0e+0, one = 1.0e+0 )
70 REAL sdot, slamch, slansy
71 EXTERNAL lsame, sdot, slamch, slansy
74 EXTERNAL sscal, ssyr, strmv
90 eps = slamch(
'Epsilon' )
91 anorm = slansy(
'1',
uplo, n, a, lda, rwork )
92 IF( anorm.LE.zero )
THEN
99 IF( lsame(
uplo,
'U' ) )
THEN
104 t = sdot( k, afac( 1, k ), 1, afac( 1, k ), 1 )
109 CALL strmv(
'Upper',
'Transpose',
'Non-unit', k-1, afac,
110 $ ldafac, afac( 1, k ), 1 )
123 $ CALL ssyr(
'Lower', n-k, one, afac( k+1, k ), 1,
124 $ afac( k+1, k+1 ), ldafac )
129 CALL sscal( n-k+1, t, afac( k, k ), 1 )
136 IF( lsame(
uplo,
'U' ) )
THEN
139 afac( i, j ) = afac( i, j ) - a( i, j )
145 afac( i, j ) = afac( i, j ) - a( i, j )
152 resid = slansy(
'1',
uplo, n, afac, ldafac, rwork )
154 resid = ( ( resid /
REAL( N ) ) / anorm ) / eps