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.LT.
ELSE IF( N0 ) THEN
197.LT.
ELSE IF( KD0 ) THEN
199.LT.
ELSE IF( LDABKD+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.LE.
IF( AJJZERO ) 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.LE.
IF( AJJZERO ) 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.LE.
IF( AJJZERO ) 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.LE.
IF( AJJZERO ) 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)
XERBLA
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
subroutine cher(uplo, n, alpha, x, incx, a, lda)
CHER