132 INTEGER n, info, lda, ldaf
136 DOUBLE PRECISION a( lda, * ), af( ldaf, * ), work( * )
142 INTEGER ncols, i, j, k, kp
143 DOUBLE PRECISION amax, umax, rpvgrw, tmp
147 INTRINSIC abs, max, min
155 upper =
lsame(
'Upper', uplo )
156 IF ( info.EQ.0 )
THEN
178 work( n+i ) = max( abs( a( i, j ) ), work( n+i ) )
179 work( n+j ) = max( abs( a( i, j ) ), work( n+j ) )
185 work( n+i ) = max( abs( a( i, j ) ), work( n+i ) )
186 work( n+j ) = max( abs( a( i, j ) ), work( n+j ) )
200 DO WHILE ( k .LT. ncols .AND. k.GT.0 )
201 IF ( ipiv( k ).GT.0 )
THEN
204 IF ( kp .NE. k )
THEN
206 work( n+k ) = work( n+kp )
210 work( k ) = max( abs( af( i, k ) ), work( k ) )
217 work( n+k-1 ) = work( n+kp )
220 work( k ) = max( abs( af( i, k ) ), work( k ) )
221 work( k-1 ) = max( abs( af( i, k-1 ) ), work( k-1 ) )
223 work( k ) = max( abs( af( k, k ) ), work( k ) )
228 DO WHILE ( k .LE. n )
229 IF ( ipiv( k ).GT.0 )
THEN
231 IF ( kp .NE. k )
THEN
233 work( n+k ) = work( n+kp )
240 work( n+k ) = work( n+kp )
247 DO WHILE ( k .LE. ncols )
248 IF ( ipiv( k ).GT.0 )
THEN
251 IF ( kp .NE. k )
THEN
253 work( n+k ) = work( n+kp )
257 work( k ) = max( abs( af( i, k ) ), work( k ) )
264 work( n+k+1 ) = work( n+kp )
267 work( k ) = max( abs( af( i, k ) ), work( k ) )
268 work( k+1 ) = max( abs( af(i, k+1 ) ), work( k+1 ) )
270 work( k ) = max( abs( af( k, k ) ), work( k ) )
275 DO WHILE ( k .GE. 1 )
276 IF ( ipiv( k ).GT.0 )
THEN
278 IF ( kp .NE. k )
THEN
280 work( n+k ) = work( n+kp )
287 work( n+k ) = work( n+kp )
305 IF ( umax /= 0.0d+0 )
THEN
306 rpvgrw = min( amax / umax, rpvgrw )
313 IF ( umax /= 0.0d+0 )
THEN
314 rpvgrw = min( amax / umax, rpvgrw )