1 SUBROUTINE zgetf2( M, N, A, LDA, IPIV, INFO )
9 INTEGER INFO, LDA, M, N
13 COMPLEX*16 A( LDA, * )
63 parameter( one = ( 1.0d+0, 0.0d+0 ),
64 $ zero = ( 0.0d+0, 0.0d+0 ) )
86 ELSE IF( n.LT.0 )
THEN
88 ELSE IF( lda.LT.max( 1, m ) )
THEN
92 CALL xerbla(
'ZGETF2', -info )
98 IF( m.EQ.0 .OR. n.EQ.0 )
101 DO 10 j = 1, min( m, n )
105 jp = j - 1 + izamax( m-j+1, a( j, j ), 1 )
107 IF( a( jp, j ).NE.zero )
THEN
112 $
CALL zswap( n, a( j, 1 ), lda, a( jp, 1 ), lda )
117 $
CALL zscal( m-j, one / a( j, j ), a( j+1, j ), 1 )
119 ELSE IF( info.EQ.0 )
THEN
124 IF( j.LT.min( m, n ) )
THEN
128 CALL zgeru( m-j, n-j, -one, a( j+1, j ), 1, a( j, j+1 ),
129 $ lda, a( j+1, j+1 ), lda )
subroutine xerbla(SRNAME, INFO)
subroutine zgeru(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
subroutine zgetf2(M, N, A, LDA, IPIV, INFO)
subroutine zscal(n, za, zx, incx)
subroutine zswap(n, zx, incx, zy, incy)