101 SUBROUTINE zgetrf ( M, N, A, LDA, IPIV, INFO)
108 INTEGER INFO, LDA, M, N
112 COMPLEX*16 A( LDA, * )
119 parameter( one = (1.0d+0, 0.0d+0) )
122 INTEGER I, IINFO, J, JB, K, NB
141 ELSE IF( n.LT.0 )
THEN
143 ELSE IF( lda.LT.
max( 1, m ) )
THEN
153.EQ..OR..EQ.
IF( M0 N0 )
158 NB = ILAENV( 1, 'zgetrf', ' ', M, N, -1, -1 )
159.LE..OR..GE.
IF( NB1 NBMIN( M, N ) ) THEN
163 CALL ZGETF2( M, N, A, LDA, IPIV, INFO )
169 DO 20 J = 1, MIN( M, N ), NB
170 JB = MIN( MIN( M, N )-J+1, NB )
175 DO 30 K = 1, J-NB, NB
179 CALL ZLASWP( JB, A(1, J), LDA, K, K+NB-1, IPIV, 1 )
183 CALL ZTRSM( 'left
', 'lower
', 'no transpose
', 'unit
',
184 $ NB, JB, ONE, A( K, K ), LDA,
189 CALL ZGEMM( 'no transpose
', 'no transpose
',
190 $ M-K-NB+1, JB, NB, -ONE,
191 $ A( K+NB, K ), LDA, A( K, J ), LDA, ONE,
192 $ A( K+NB, J ), LDA )
198 CALL ZGETF2( M-J+1, JB, A( J, J ), LDA, IPIV( J ), IINFO )
202.EQ..AND..GT.
IF( INFO0 IINFO0 )
203 $ INFO = IINFO + J - 1
204 DO 10 I = J, MIN( M, J+JB-1 )
205 IPIV( I ) = J - 1 + IPIV( I )
213 DO 40 K = 1, MIN( M, N ), NB
214 CALL ZLASWP( K-1, A( 1, 1 ), LDA, K,
215 $ MIN (K+NB-1, MIN ( M, N )), IPIV, 1 )
222 CALL ZLASWP( N-M, A(1, M+1), LDA, 1, M, IPIV, 1 )
226 JB = MIN( M-K+1, NB )
228 CALL ZTRSM( 'left
', 'lower
', 'no transpose
', 'unit
',
229 $ JB, N-M, ONE, A( K, K ), LDA,
233.LE.
IF ( K+NBM ) THEN
234 CALL ZGEMM( 'no transpose
', 'no transpose
',
235 $ M-K-NB+1, N-M, NB, -ONE,
236 $ A( K+NB, K ), LDA, A( K, M+1 ), LDA, ONE,
237 $ A( K+NB, M+1 ), LDA )
subroutine xerbla(srname, info)
XERBLA
subroutine zgetf2(m, n, a, lda, ipiv, info)
ZGETF2 computes the LU factorization of a general m-by-n matrix using partial pivoting with row inter...
subroutine zlaswp(n, a, lda, k1, k2, ipiv, incx)
ZLASWP performs a series of row interchanges on a general rectangular matrix.
subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
ZGEMM
subroutine ztrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRSM
subroutine zgetrf(m, n, a, lda, ipiv, info)
ZGETRF VARIANT: Crout Level 3 BLAS version of the algorithm.