152 SUBROUTINE zpbstf( UPLO, N, KD, AB, LDAB, INFO )
160 INTEGER INFO, KD, LDAB, N
163 COMPLEX*16 AB( LDAB, * )
169 DOUBLE PRECISION ONE, ZERO
170 parameter( one = 1.0d+0, zero = 0.0d+0 )
174 INTEGER J, KLD, KM, M
185 INTRINSIC dble, max, min, 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(
'ZPBSTF', -info )
212 kld = max( 1, ldab-1 )
222 DO 10 j = n, m + 1, -1
226 ajj = dble( ab( kd+1, j ) )
227 IF( ajj.LE.zero )
THEN
238 CALL zdscal( km, one / ajj, ab( kd+1-km, j ), 1 )
239 CALL zher(
'Upper', km, -one, ab( kd+1-km, j ), 1,
240 $ ab( kd+1, j-km ), kld )
249 ajj = dble( ab( kd+1, j ) )
250 IF( ajj.LE.zero )
THEN
262 CALL zdscal( km, one / ajj, ab( kd, j+1 ), kld )
263 CALL zlacgv( km, ab( kd, j+1 ), kld )
264 CALL zher(
'Upper', km, -one, ab( kd, j+1 ), kld,
265 $ ab( kd+1, j+1 ), kld )
266 CALL zlacgv( km, ab( kd, j+1 ), kld )
273 DO 30 j = n, m + 1, -1
277 ajj = dble( ab( 1, j ) )
278 IF( ajj.LE.zero )
THEN
289 CALL zdscal( km, one / ajj, ab( km+1, j-km ), kld )
290 CALL zlacgv( km, ab( km+1, j-km ), kld )
291 CALL zher(
'Lower', km, -one, ab( km+1, j-km ), kld,
292 $ ab( 1, j-km ), kld )
293 CALL zlacgv( km, ab( km+1, j-km ), kld )
302 ajj = dble( ab( 1, j ) )
303 IF( ajj.LE.zero )
THEN
315 CALL zdscal( km, one / ajj, ab( 2, j ), 1 )
316 CALL zher(
'Lower', km, -one, ab( 2, j ), 1,
317 $ ab( 1, j+1 ), kld )
subroutine xerbla(srname, info)
subroutine zher(uplo, n, alpha, x, incx, a, lda)
ZHER
subroutine zlacgv(n, x, incx)
ZLACGV conjugates a complex vector.
subroutine zpbstf(uplo, n, kd, ab, ldab, info)
ZPBSTF
subroutine zdscal(n, da, zx, incx)
ZDSCAL