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 ) )
148 ELSE IF( n.LT.0 )
THEN
150 ELSE IF( lda.LT.max( 1, m ) )
THEN
154 CALL xerbla(
'CGETF2', -info )
160 IF( m.EQ.0 .OR. n.EQ.0 )
163 DO 10 j = 1, min( m, n )
167 jp = j - 1 + icamax( m-j+1, a( j, j ), 1 )
169 IF( a( jp, j ).NE.zero )
THEN
174 $
CALL cswap( n, a( j, 1 ), lda, a( jp, 1 ), lda )
179 $
CALL crscl( m-j, a( j, j ), a( j+1, j ), 1 )
181 ELSE IF( info.EQ.0 )
THEN
186 IF( j.LT.min( m, n ) )
THEN
190 CALL cgeru( m-j, n-j, -one, a( j+1, j ), 1, a( j, j+1 ),
191 $ lda, a( j+1, j+1 ), lda )
subroutine xerbla(srname, info)
subroutine crscl(n, a, x, incx)
CRSCL multiplies a vector by the reciprocal of a real scalar.
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