119 SUBROUTINE spbt01( UPLO, N, KD, A, LDA, AFAC, LDAFAC, RWORK,
129 INTEGER KD, LDA, LDAFAC, N
133 REAL A( LDA, * ), AFAC( LDAFAC, * ), RWORK( * )
141 parameter( zero = 0.0e+0, one = 1.0e+0 )
144 INTEGER I, J, K, KC, KLEN, ML, MU
149 REAL SDOT, SLAMCH, SLANSB
150 EXTERNAL lsame, sdot, slamch, slansb
156 INTRINSIC max, min, real
169 eps = slamch(
'Epsilon' )
170 anorm = slansb(
'1', uplo, n, kd, a, lda, rwork )
171 IF( anorm.LE.zero )
THEN
178 IF( lsame( uplo,
'U' ) )
THEN
180 kc = max( 1, kd+2-k )
185 t = sdot( klen+1, afac( kc, k ), 1, afac( kc, k ), 1 )
191 $
CALL strmv(
'Upper',
'Transpose',
'Non-unit', klen,
192 $ afac( kd+1, k-klen ), ldafac-1,
201 klen = min( kd, n-k )
207 $
CALL ssyr(
'Lower', klen, one, afac( 2, k ), 1,
208 $ afac( 1, k+1 ), ldafac-1 )
213 CALL sscal( klen+1, t, afac( 1, k ), 1 )
220 IF( lsame( uplo,
'U' ) )
THEN
222 mu = max( 1, kd+2-j )
224 afac( i, j ) = afac( i, j ) - a( i, j )
229 ml = min( kd+1, n-j+1 )
231 afac( i, j ) = afac( i, j ) - a( i, j )
238 resid = slansb(
'I', uplo, n, kd, afac, ldafac, rwork )
240 resid = ( ( resid / real( n ) ) / anorm ) / eps