120 DOUBLE PRECISION FUNCTION dla_syrpvgrw( UPLO, N, INFO, A, LDA, AF,
129 INTEGER N, INFO, LDA, LDAF
133 DOUBLE PRECISION A( lda, * ), AF( ldaf, * ), WORK( * )
139 INTEGER NCOLS, I, J, K, KP
140 DOUBLE PRECISION AMAX, UMAX, RPVGRW, TMP
144 INTRINSIC abs, max, min
152 upper = lsame(
'Upper', uplo )
153 IF ( info.EQ.0 )
THEN 175 work( n+i ) = max( abs( a( i, j ) ), work( n+i ) )
176 work( n+j ) = max( abs( a( i, j ) ), work( n+j ) )
182 work( n+i ) = max( abs( a( i, j ) ), work( n+i ) )
183 work( n+j ) = max( abs( a( i, j ) ), work( n+j ) )
197 DO WHILE ( k .LT. ncols .AND. k.GT.0 )
198 IF ( ipiv( k ).GT.0 )
THEN 201 IF ( kp .NE. k )
THEN 203 work( n+k ) = work( n+kp )
207 work( k ) = max( abs( af( i, k ) ), work( k ) )
214 work( n+k-1 ) = work( n+kp )
217 work( k ) = max( abs( af( i, k ) ), work( k ) )
218 work( k-1 ) = max( abs( af( i, k-1 ) ), work( k-1 ) )
220 work( k ) = max( abs( af( k, k ) ), work( k ) )
225 DO WHILE ( k .LE. n )
226 IF ( ipiv( k ).GT.0 )
THEN 228 IF ( kp .NE. k )
THEN 230 work( n+k ) = work( n+kp )
237 work( n+k ) = work( n+kp )
244 DO WHILE ( k .LE. ncols )
245 IF ( ipiv( k ).GT.0 )
THEN 248 IF ( kp .NE. k )
THEN 250 work( n+k ) = work( n+kp )
254 work( k ) = max( abs( af( i, k ) ), work( k ) )
261 work( n+k+1 ) = work( n+kp )
264 work( k ) = max( abs( af( i, k ) ), work( k ) )
265 work( k+1 ) = max( abs( af(i, k+1 ) ), work( k+1 ) )
267 work( k ) = max( abs( af( k, k ) ), work( k ) )
272 DO WHILE ( k .GE. 1 )
273 IF ( ipiv( k ).GT.0 )
THEN 275 IF ( kp .NE. k )
THEN 277 work( n+k ) = work( n+kp )
284 work( n+k ) = work( n+kp )
302 IF ( umax /= 0.0d+0 )
THEN 303 rpvgrw = min( amax / umax, rpvgrw )
310 IF ( umax /= 0.0d+0 )
THEN 311 rpvgrw = min( amax / umax, rpvgrw )
logical function lsame(CA, CB)
LSAME
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...