107 SUBROUTINE cgetf2( M, N, A, LDA, IPIV, INFO )
114 INTEGER INFO, LDA, M, N
125 parameter( one = ( 1.0e+0, 0.0e+0 ),
126 $ zero = ( 0.0e+0, 0.0e+0 ) )
135 EXTERNAL slamch, icamax
150 ELSE IF( n.LT.0 )
THEN 152 ELSE IF( lda.LT.max( 1, m ) )
THEN 156 CALL xerbla(
'CGETF2', -info )
162 IF( m.EQ.0 .OR. n.EQ.0 )
169 DO 10 j = 1, min( m, n )
173 jp = j - 1 + icamax( m-j+1, a( j, j ), 1 )
175 IF( a( jp, j ).NE.zero )
THEN 180 $
CALL cswap( n, a( j, 1 ), lda, a( jp, 1 ), lda )
185 IF( abs(a( j, j )) .GE. sfmin )
THEN 186 CALL cscal( m-j, one / a( j, j ), a( j+1, j ), 1 )
189 a( j+i, j ) = a( j+i, j ) / a( j, j )
194 ELSE IF( info.EQ.0 )
THEN 199 IF( j.LT.min( m, n ) )
THEN 203 CALL cgeru( m-j, n-j, -one, a( j+1, j ), 1, a( j, j+1 ),
204 $ lda, a( j+1, j+1 ), lda )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cscal(N, CA, CX, INCX)
CSCAL
subroutine cgeru(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERU
subroutine cgetf2(M, N, A, LDA, IPIV, INFO)
CGETF2 computes the LU factorization of a general m-by-n matrix using partial pivoting with row inter...
subroutine cswap(N, CX, INCX, CY, INCY)
CSWAP