159 SUBROUTINE dlaqgb( M, N, KL, KU, AB, LDAB, R, C, ROWCND, COLCND,
169 INTEGER kl, ku, ldab, m, n
170 DOUBLE PRECISION amax, colcnd, rowcnd
173 DOUBLE PRECISION ab( ldab, * ), c( * ), r( * )
179 DOUBLE PRECISION one, thresh
180 parameter( one = 1.0d+0, thresh = 0.1d+0 )
184 DOUBLE PRECISION cj, large, small
197 IF( m.LE.0 .OR. n.LE.0 )
THEN
204 small =
dlamch(
'Safe minimum' ) /
dlamch(
'Precision' )
207 IF( rowcnd.GE.thresh .AND. amax.GE.small .AND. amax.LE.large )
212 IF( colcnd.GE.thresh )
THEN
223 DO 10 i = max( 1, j-ku ), min( m, j+kl )
224 ab( ku+1+i-j, j ) = cj*ab( ku+1+i-j, j )
229 ELSE IF( colcnd.GE.thresh )
THEN
234 DO 30 i = max( 1, j-ku ), min( m, j+kl )
235 ab( ku+1+i-j, j ) = r( i )*ab( ku+1+i-j, j )
245 DO 50 i = max( 1, j-ku ), min( m, j+kl )
246 ab( ku+1+i-j, j ) = cj*r( i )*ab( ku+1+i-j, j )