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 )
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...
logical function lsame(ca, cb)
LSAME