130 INTEGER n, info, lda, ldaf
133 COMPLEX*16 a( lda, * ), af( ldaf, * )
134 DOUBLE PRECISION work( * )
141 INTEGER ncols, i, j, k, kp
142 DOUBLE PRECISION amax, umax, rpvgrw, tmp
147 INTRINSIC abs, real, dimag, max, min
154 DOUBLE PRECISION cabs1
157 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
161 upper =
lsame(
'Upper', uplo )
162 IF ( info.EQ.0 )
THEN
184 work( n+i ) = max( cabs1( a( i, j ) ), work( n+i ) )
185 work( n+j ) = max( cabs1( a( i, j ) ), work( n+j ) )
191 work( n+i ) = max( cabs1( a( i, j ) ), work( n+i ) )
192 work( n+j ) = max( cabs1( a( i, j ) ), work( n+j ) )
206 DO WHILE ( k .LT. ncols .AND. k.GT.0 )
207 IF ( ipiv( k ).GT.0 )
THEN
210 IF ( kp .NE. k )
THEN
212 work( n+k ) = work( n+kp )
216 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
223 work( n+k-1 ) = work( n+kp )
226 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
228 $ max( cabs1( af( i, k-1 ) ), work( k-1 ) )
230 work( k ) = max( cabs1( af( k, k ) ), work( k ) )
235 DO WHILE ( k .LE. n )
236 IF ( ipiv( k ).GT.0 )
THEN
238 IF ( kp .NE. k )
THEN
240 work( n+k ) = work( n+kp )
247 work( n+k ) = work( n+kp )
254 DO WHILE ( k .LE. ncols )
255 IF ( ipiv( k ).GT.0 )
THEN
258 IF ( kp .NE. k )
THEN
260 work( n+k ) = work( n+kp )
264 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
271 work( n+k+1 ) = work( n+kp )
274 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
276 $ max( cabs1( af( i, k+1 ) ), work( k+1 ) )
278 work( k ) = max( cabs1( af( k, k ) ), work( k ) )
283 DO WHILE ( k .GE. 1 )
284 IF ( ipiv( k ).GT.0 )
THEN
286 IF ( kp .NE. k )
THEN
288 work( n+k ) = work( n+kp )
295 work( n+k ) = work( n+kp )
313 IF ( umax /= 0.0d+0 )
THEN
314 rpvgrw = min( amax / umax, rpvgrw )
321 IF ( umax /= 0.0d+0 )
THEN
322 rpvgrw = min( amax / umax, rpvgrw )
double precision function zla_syrpvgrw(uplo, n, info, a, lda, af, ldaf, ipiv, work)
ZLA_SYRPVGRW computes the reciprocal pivot growth factor norm(A)/norm(U) for a symmetric indefinite m...
logical function lsame(ca, cb)
LSAME