153 SUBROUTINE dpbstf( UPLO, N, KD, AB, LDAB, INFO )
162 INTEGER info, kd, ldab, n
165 DOUBLE PRECISION ab( ldab, * )
171 DOUBLE PRECISION one, zero
172 parameter( one = 1.0d+0, zero = 0.0d+0 )
176 INTEGER j, kld, km, m
187 INTRINSIC max, min, sqrt
194 upper =
lsame( uplo,
'U' )
195 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
197 ELSE IF( n.LT.0 )
THEN
199 ELSE IF( kd.LT.0 )
THEN
201 ELSE IF( ldab.LT.kd+1 )
THEN
205 CALL
xerbla(
'DPBSTF', -info )
214 kld = max( 1, ldab-1 )
224 DO 10 j = n, m + 1, -1
238 CALL
dscal( km, one / ajj, ab( kd+1-km, j ), 1 )
239 CALL
dsyr(
'Upper', km, -one, ab( kd+1-km, j ), 1,
240 $ ab( kd+1, j-km ), kld )
260 CALL
dscal( km, one / ajj, ab( kd, j+1 ), kld )
261 CALL
dsyr(
'Upper', km, -one, ab( kd, j+1 ), kld,
262 $ ab( kd+1, j+1 ), kld )
269 DO 30 j = n, m + 1, -1
283 CALL
dscal( km, one / ajj, ab( km+1, j-km ), kld )
284 CALL
dsyr(
'Lower', km, -one, ab( km+1, j-km ), kld,
285 $ ab( 1, j-km ), kld )
305 CALL
dscal( km, one / ajj, ab( 2, j ), 1 )
306 CALL
dsyr(
'Lower', km, -one, ab( 2, j ), 1,
307 $ ab( 1, j+1 ), kld )