160 SUBROUTINE zlaqgb( M, N, KL, KU, AB, LDAB, R, C, ROWCND, COLCND,
170 INTEGER kl, ku, ldab, m, n
171 DOUBLE PRECISION amax, colcnd, rowcnd
174 DOUBLE PRECISION c( * ), r( * )
175 COMPLEX*16 ab( ldab, * )
181 DOUBLE PRECISION one, thresh
182 parameter( one = 1.0d+0, thresh = 0.1d+0 )
186 DOUBLE PRECISION cj, large, small
199 IF( m.LE.0 .OR. n.LE.0 )
THEN
206 small =
dlamch(
'Safe minimum' ) /
dlamch(
'Precision' )
209 IF( rowcnd.GE.thresh .AND. amax.GE.small .AND. amax.LE.large )
214 IF( colcnd.GE.thresh )
THEN
225 DO 10 i = max( 1, j-ku ), min( m, j+kl )
226 ab( ku+1+i-j, j ) = cj*ab( ku+1+i-j, j )
231 ELSE IF( colcnd.GE.thresh )
THEN
236 DO 30 i = max( 1, j-ku ), min( m, j+kl )
237 ab( ku+1+i-j, j ) = r( i )*ab( ku+1+i-j, j )
247 DO 50 i = max( 1, j-ku ), min( m, j+kl )
248 ab( ku+1+i-j, j ) = cj*r( i )*ab( ku+1+i-j, j )