133 INTEGER n, info, lda, ldaf
136 COMPLEX*16 a( lda, * ), af( ldaf, * )
137 DOUBLE PRECISION work( * )
144 INTEGER ncols, i, j, k, kp
145 DOUBLE PRECISION amax, umax, rpvgrw, tmp
150 INTRINSIC abs,
REAL, dimag, max, min
157 DOUBLE PRECISION cabs1
160 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
164 upper =
lsame(
'Upper', uplo )
165 IF ( info.EQ.0 )
THEN
187 work( n+i ) = max( cabs1( a( i, j ) ), work( n+i ) )
188 work( n+j ) = max( cabs1( a( i, j ) ), work( n+j ) )
194 work( n+i ) = max( cabs1( a( i, j ) ), work( n+i ) )
195 work( n+j ) = max( cabs1( a( i, j ) ), work( n+j ) )
209 DO WHILE ( k .LT. ncols .AND. k.GT.0 )
210 IF ( ipiv( k ).GT.0 )
THEN
213 IF ( kp .NE. k )
THEN
215 work( n+k ) = work( n+kp )
219 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
226 work( n+k-1 ) = work( n+kp )
229 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
231 $ max( cabs1( af( i, k-1 ) ), work( k-1 ) )
233 work( k ) = max( cabs1( af( k, k ) ), work( k ) )
238 DO WHILE ( k .LE. n )
239 IF ( ipiv( k ).GT.0 )
THEN
241 IF ( kp .NE. k )
THEN
243 work( n+k ) = work( n+kp )
250 work( n+k ) = work( n+kp )
257 DO WHILE ( k .LE. ncols )
258 IF ( ipiv( k ).GT.0 )
THEN
261 IF ( kp .NE. k )
THEN
263 work( n+k ) = work( n+kp )
267 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
274 work( n+k+1 ) = work( n+kp )
277 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
279 $ max( cabs1( af( i, k+1 ) ), work( k+1 ) )
281 work( k ) = max( cabs1( af( k, k ) ), work( k ) )
286 DO WHILE ( k .GE. 1 )
287 IF ( ipiv( k ).GT.0 )
THEN
289 IF ( kp .NE. k )
THEN
291 work( n+k ) = work( n+kp )
298 work( n+k ) = work( n+kp )
316 IF ( umax /= 0.0d+0 )
THEN
317 rpvgrw = min( amax / umax, rpvgrw )
324 IF ( umax /= 0.0d+0 )
THEN
325 rpvgrw = min( amax / umax, rpvgrw )