152 SUBROUTINE zpbstf( UPLO, N, KD, AB, LDAB, INFO )
160 INTEGER INFO, KD, LDAB, N
163 COMPLEX*16 AB( LDAB, * )
169 DOUBLE PRECISION , 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.LT.
ELSE IF( N0 ) THEN
197.LT.
ELSE IF( KD0 ) THEN
199.LT.
ELSE IF( LDABKD+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.LE.
IF( AJJZERO ) 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.LE.
IF( AJJZERO ) 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.LE.
IF( AJJZERO ) 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.LE.
IF( AJJZERO ) 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)
XERBLA
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
subroutine zher(uplo, n, alpha, x, incx, a, lda)
ZHER