--- rpl/lapack/lapack/zgetc2.f 2012/08/22 09:48:31 1.10 +++ rpl/lapack/lapack/zgetc2.f 2016/08/27 15:27:12 1.15 @@ -1,4 +1,4 @@ -*> \brief \b ZGETC2 +*> \brief \b ZGETC2 computes the LU factorization with complete pivoting of the general n-by-n matrix. * * =========== DOCUMENTATION =========== * @@ -98,7 +98,7 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2011 +*> \date June 2016 * *> \ingroup complex16GEauxiliary * @@ -111,10 +111,10 @@ * ===================================================================== SUBROUTINE ZGETC2( N, A, LDA, IPIV, JPIV, INFO ) * -* -- LAPACK auxiliary routine (version 3.4.0) -- +* -- LAPACK auxiliary routine (version 3.6.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2011 +* June 2016 * * .. Scalar Arguments .. INTEGER INFO, LDA, N @@ -146,14 +146,32 @@ * .. * .. Executable Statements .. * + INFO = 0 +* +* Quick return if possible +* + IF( N.EQ.0 ) + $ RETURN +* * Set constants to control overflow * - INFO = 0 EPS = DLAMCH( 'P' ) SMLNUM = DLAMCH( 'S' ) / EPS BIGNUM = ONE / SMLNUM CALL DLABAD( SMLNUM, BIGNUM ) * +* Handle the case N=1 by itself +* + IF( N.EQ.1 ) THEN + IPIV( 1 ) = 1 + JPIV( 1 ) = 1 + IF( ABS( A( 1, 1 ) ).LT.SMLNUM ) THEN + INFO = 1 + A( 1, 1 ) = DCMPLX( SMLNUM, ZERO ) + END IF + RETURN + END IF +* * Factorize A using complete pivoting. * Set pivots less than SMIN to SMIN * @@ -203,6 +221,12 @@ INFO = N A( N, N ) = DCMPLX( SMIN, ZERO ) END IF +* +* Set last pivots to N +* + IPIV( N ) = N + JPIV( N ) = N +* RETURN * * End of ZGETC2