128 INTEGER n, info, lda, ldaf
132 DOUBLE PRECISION a( lda, * ), af( ldaf, * ), work( * )
138 INTEGER ncols, i, j, k, kp
139 DOUBLE PRECISION amax, umax, rpvgrw, tmp
143 INTRINSIC abs, max, min
151 upper =
lsame(
'Upper', uplo )
152 IF ( info.EQ.0 )
THEN
174 work( n+i ) = max( abs( a( i, j ) ), work( n+i ) )
175 work( n+j ) = max( abs( a( i, j ) ), work( n+j ) )
181 work( n+i ) = max( abs( a( i, j ) ), work( n+i ) )
182 work( n+j ) = max( abs( a( i, j ) ), work( n+j ) )
196 DO WHILE ( k .LT. ncols .AND. k.GT.0 )
197 IF ( ipiv( k ).GT.0 )
THEN
200 IF ( kp .NE. k )
THEN
202 work( n+k ) = work( n+kp )
206 work( k ) = max( abs( af( i, k ) ), work( k ) )
213 work( n+k-1 ) = work( n+kp )
216 work( k ) = max( abs( af( i, k ) ), work( k ) )
217 work( k-1 ) = max( abs( af( i, k-1 ) ), work( k-1 ) )
219 work( k ) = max( abs( af( k, k ) ), work( k ) )
224 DO WHILE ( k .LE. n )
225 IF ( ipiv( k ).GT.0 )
THEN
227 IF ( kp .NE. k )
THEN
229 work( n+k ) = work( n+kp )
236 work( n+k ) = work( n+kp )
243 DO WHILE ( k .LE. ncols )
244 IF ( ipiv( k ).GT.0 )
THEN
247 IF ( kp .NE. k )
THEN
249 work( n+k ) = work( n+kp )
253 work( k ) = max( abs( af( i, k ) ), work( k ) )
260 work( n+k+1 ) = work( n+kp )
263 work( k ) = max( abs( af( i, k ) ), work( k ) )
264 work( k+1 ) = max( abs( af(i, k+1 ) ), work( k+1 ) )
266 work( k ) = max( abs( af( k, k ) ), work( k ) )
271 DO WHILE ( k .GE. 1 )
272 IF ( ipiv( k ).GT.0 )
THEN
274 IF ( kp .NE. k )
THEN
276 work( n+k ) = work( n+kp )
283 work( n+k ) = work( n+kp )
301 IF ( umax /= 0.0d+0 )
THEN
302 rpvgrw = min( amax / umax, rpvgrw )
309 IF ( umax /= 0.0d+0 )
THEN
310 rpvgrw = min( amax / umax, rpvgrw )
double precision function dla_syrpvgrw(uplo, n, info, a, lda, af, ldaf, ipiv, work)
DLA_SYRPVGRW computes the reciprocal pivot growth factor norm(A)/norm(U) for a symmetric indefinite m...