198 SUBROUTINE dsyconvf_rook( UPLO, WAY, N, A, LDA, E, IPIV, INFO )
211 DOUBLE PRECISION A( LDA, * ), E( * )
217 DOUBLE PRECISION ZERO
218 parameter( zero = 0.0d+0 )
227 LOGICAL UPPER, CONVERT
233 upper = lsame( uplo,
'U' )
234 convert = lsame( way,
'C' )
235 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
237 ELSE IF( .NOT.convert .AND. .NOT.lsame( way,
'R' ) )
THEN
239 ELSE IF( n.LT.0 )
THEN
241 ELSE IF( lda.LT.max( 1, n ) )
THEN
246 CALL xerbla(
'DSYCONVF_ROOK', -info )
272 IF( ipiv( i ).LT.0 )
THEN
290 IF( ipiv( i ).GT.0 )
THEN
299 CALL dswap( n-i, a( i, i+1 ), lda,
300 $ a( ip, i+1 ), lda )
315 CALL dswap( n-i, a( i, i+1 ), lda,
316 $ a( ip, i+1 ), lda )
318 IF( ip2.NE.(i-1) )
THEN
319 CALL dswap( n-i, a( i-1, i+1 ), lda,
320 $ a( ip2, i+1 ), lda )
341 IF( ipiv( i ).GT.0 )
THEN
350 CALL dswap( n-i, a( ip, i+1 ), lda,
366 IF( ip2.NE.(i-1) )
THEN
367 CALL dswap( n-i, a( ip2, i+1 ), lda,
368 $ a( i-1, i+1 ), lda )
371 CALL dswap( n-i, a( ip, i+1 ), lda,
386 IF( ipiv( i ).LT.0 )
THEN
413 IF( i.LT.n .AND. ipiv(i).LT.0 )
THEN
431 IF( ipiv( i ).GT.0 )
THEN
440 CALL dswap( i-1, a( i, 1 ), lda,
456 CALL dswap( i-1, a( i, 1 ), lda,
459 IF( ip2.NE.(i+1) )
THEN
460 CALL dswap( i-1, a( i+1, 1 ), lda,
482 IF( ipiv( i ).GT.0 )
THEN
491 CALL dswap( i-1, a( ip, 1 ), lda,
507 IF( ip2.NE.(i+1) )
THEN
508 CALL dswap( i-1, a( ip2, 1 ), lda,
512 CALL dswap( i-1, a( ip, 1 ), lda,
526 DO WHILE ( i.LE.n-1 )
527 IF( ipiv( i ).LT.0 )
THEN
528 a( i + 1, i ) = e( i )