152 SUBROUTINE cpbstf( UPLO, N, KD, AB, LDAB, INFO )
160 INTEGER INFO, KD, LDAB, N
163 COMPLEX AB( LDAB, * )
170 parameter( one = 1.0e+0, zero = 0.0e+0 )
174 INTEGER J, KLD, KM, M
185 INTRINSIC max, min, real, sqrt
192 upper = lsame( uplo,
'U' )
193 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
195 ELSE IF( n.LT.0 )
THEN
197 ELSE IF( kd.LT.0 )
THEN
199 ELSE IF( ldab.LT.kd+1 )
THEN
203 CALL xerbla(
'CPBSTF', -info )
212 kld = max( 1, ldab-1 )
222 DO 10 j = n, m + 1, -1
226 ajj = real( ab( kd+1, j ) )
227 IF( ajj.LE.zero )
THEN
238 CALL csscal( km, one / ajj, ab( kd+1-km, j ), 1 )
239 CALL cher(
'Upper', km, -one, ab( kd+1-km, j ), 1,
240 $ ab( kd+1, j-km ), kld )
249 ajj = real( ab( kd+1, j ) )
250 IF( ajj.LE.zero )
THEN
262 CALL csscal( km, one / ajj, ab( kd, j+1 ), kld )
263 CALL clacgv( km, ab( kd, j+1 ), kld )
264 CALL cher(
'Upper', km, -one, ab( kd, j+1 ), kld,
265 $ ab( kd+1, j+1 ), kld )
266 CALL clacgv( km, ab( kd, j+1 ), kld )
273 DO 30 j = n, m + 1, -1
277 ajj = real( ab( 1, j ) )
278 IF( ajj.LE.zero )
THEN
289 CALL csscal( km, one / ajj, ab( km+1, j-km ), kld )
290 CALL clacgv( km, ab( km+1, j-km ), kld )
291 CALL cher(
'Lower', km, -one, ab( km+1, j-km ), kld,
292 $ ab( 1, j-km ), kld )
293 CALL clacgv( km, ab( km+1, j-km ), kld )
302 ajj = real( ab( 1, j ) )
303 IF( ajj.LE.zero )
THEN
315 CALL csscal( km, one / ajj, ab( 2, j ), 1 )
316 CALL cher(
'Lower', km, -one, ab( 2, j ), 1,
317 $ ab( 1, j+1 ), kld )
subroutine xerbla(srname, info)
subroutine cher(uplo, n, alpha, x, incx, a, lda)
CHER
subroutine clacgv(n, x, incx)
CLACGV conjugates a complex vector.
subroutine cpbstf(uplo, n, kd, ab, ldab, info)
CPBSTF
subroutine csscal(n, sa, cx, incx)
CSSCAL