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)
XERBLA
subroutine csscal(N, SA, CX, INCX)
CSSCAL
subroutine cpbstf(UPLO, N, KD, AB, LDAB, INFO)
CPBSTF
subroutine cher(UPLO, N, ALPHA, X, INCX, A, LDA)
CHER
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.