120 SUBROUTINE cpbt01( UPLO, N, KD, A, LDA, AFAC, LDAFAC, RWORK,
130 INTEGER KD, LDA, LDAFAC, N
135 COMPLEX A( lda, * ), AFAC( ldafac, * )
143 parameter ( zero = 0.0e+0, one = 1.0e+0 )
146 INTEGER I, J, K, KC, KLEN, ML, MU
153 EXTERNAL lsame, clanhb, slamch, cdotc
159 INTRINSIC aimag, max, min, real
172 eps = slamch(
'Epsilon' )
173 anorm = clanhb(
'1', uplo, n, kd, a, lda, rwork )
174 IF( anorm.LE.zero )
THEN
182 IF( lsame( uplo,
'U' ) )
THEN
184 IF( aimag( afac( kd+1, j ) ).NE.zero )
THEN
191 IF( aimag( afac( 1, j ) ).NE.zero )
THEN
200 IF( lsame( uplo,
'U' ) )
THEN
202 kc = max( 1, kd+2-k )
207 akk = cdotc( klen+1, afac( kc, k ), 1, afac( kc, k ), 1 )
208 afac( kd+1, k ) = akk
213 $
CALL ctrmv(
'Upper',
'Conjugate',
'Non-unit', klen,
214 $ afac( kd+1, k-klen ), ldafac-1,
223 klen = min( kd, n-k )
229 $
CALL cher(
'Lower', klen, one, afac( 2, k ), 1,
230 $ afac( 1, k+1 ), ldafac-1 )
235 CALL csscal( klen+1, akk, afac( 1, k ), 1 )
242 IF( lsame( uplo,
'U' ) )
THEN
244 mu = max( 1, kd+2-j )
246 afac( i, j ) = afac( i, j ) - a( i, j )
251 ml = min( kd+1, n-j+1 )
253 afac( i, j ) = afac( i, j ) - a( i, j )
260 resid = clanhb(
'1', uplo, n, kd, afac, ldafac, rwork )
262 resid = ( ( resid /
REAL( N ) ) / anorm ) / eps
subroutine cher(UPLO, N, ALPHA, X, INCX, A, LDA)
CHER
subroutine ctrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
CTRMV
subroutine cpbt01(UPLO, N, KD, A, LDA, AFAC, LDAFAC, RWORK, RESID)
CPBT01
subroutine csscal(N, SA, CX, INCX)
CSSCAL