--- rpl/lapack/lapack/zlatdf.f 2010/12/21 13:53:52 1.7 +++ rpl/lapack/lapack/zlatdf.f 2011/11/21 20:43:18 1.8 @@ -1,10 +1,178 @@ +*> \brief \b ZLATDF +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download ZLATDF + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE ZLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, +* JPIV ) +* +* .. Scalar Arguments .. +* INTEGER IJOB, LDZ, N +* DOUBLE PRECISION RDSCAL, RDSUM +* .. +* .. Array Arguments .. +* INTEGER IPIV( * ), JPIV( * ) +* COMPLEX*16 RHS( * ), Z( LDZ, * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> ZLATDF computes the contribution to the reciprocal Dif-estimate +*> by solving for x in Z * x = b, where b is chosen such that the norm +*> of x is as large as possible. It is assumed that LU decomposition +*> of Z has been computed by ZGETC2. On entry RHS = f holds the +*> contribution from earlier solved sub-systems, and on return RHS = x. +*> +*> The factorization of Z returned by ZGETC2 has the form +*> Z = P * L * U * Q, where P and Q are permutation matrices. L is lower +*> triangular with unit diagonal elements and U is upper triangular. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] IJOB +*> \verbatim +*> IJOB is INTEGER +*> IJOB = 2: First compute an approximative null-vector e +*> of Z using ZGECON, e is normalized and solve for +*> Zx = +-e - f with the sign giving the greater value of +*> 2-norm(x). About 5 times as expensive as Default. +*> IJOB .ne. 2: Local look ahead strategy where +*> all entries of the r.h.s. b is choosen as either +1 or +*> -1. Default. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix Z. +*> \endverbatim +*> +*> \param[in] Z +*> \verbatim +*> Z is DOUBLE PRECISION array, dimension (LDZ, N) +*> On entry, the LU part of the factorization of the n-by-n +*> matrix Z computed by ZGETC2: Z = P * L * U * Q +*> \endverbatim +*> +*> \param[in] LDZ +*> \verbatim +*> LDZ is INTEGER +*> The leading dimension of the array Z. LDA >= max(1, N). +*> \endverbatim +*> +*> \param[in,out] RHS +*> \verbatim +*> RHS is DOUBLE PRECISION array, dimension (N). +*> On entry, RHS contains contributions from other subsystems. +*> On exit, RHS contains the solution of the subsystem with +*> entries according to the value of IJOB (see above). +*> \endverbatim +*> +*> \param[in,out] RDSUM +*> \verbatim +*> RDSUM is DOUBLE PRECISION +*> On entry, the sum of squares of computed contributions to +*> the Dif-estimate under computation by ZTGSYL, where the +*> scaling factor RDSCAL (see below) has been factored out. +*> On exit, the corresponding sum of squares updated with the +*> contributions from the current sub-system. +*> If TRANS = 'T' RDSUM is not touched. +*> NOTE: RDSUM only makes sense when ZTGSY2 is called by CTGSYL. +*> \endverbatim +*> +*> \param[in,out] RDSCAL +*> \verbatim +*> RDSCAL is DOUBLE PRECISION +*> On entry, scaling factor used to prevent overflow in RDSUM. +*> On exit, RDSCAL is updated w.r.t. the current contributions +*> in RDSUM. +*> If TRANS = 'T', RDSCAL is not touched. +*> NOTE: RDSCAL only makes sense when ZTGSY2 is called by +*> ZTGSYL. +*> \endverbatim +*> +*> \param[in] IPIV +*> \verbatim +*> IPIV is INTEGER array, dimension (N). +*> The pivot indices; for 1 <= i <= N, row i of the +*> matrix has been interchanged with row IPIV(i). +*> \endverbatim +*> +*> \param[in] JPIV +*> \verbatim +*> JPIV is INTEGER array, dimension (N). +*> The pivot indices; for 1 <= j <= N, column j of the +*> matrix has been interchanged with column JPIV(j). +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \date November 2011 +* +*> \ingroup complex16OTHERauxiliary +* +*> \par Further Details: +* ===================== +*> +*> This routine is a further developed implementation of algorithm +*> BSOLVE in [1] using complete pivoting in the LU factorization. +* +*> \par Contributors: +* ================== +*> +*> Bo Kagstrom and Peter Poromaa, Department of Computing Science, +*> Umea University, S-901 87 Umea, Sweden. +* +*> \par References: +* ================ +*> +*> [1] Bo Kagstrom and Lars Westin, +*> Generalized Schur Methods with Condition Estimators for +*> Solving the Generalized Sylvester Equation, IEEE Transactions +*> on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751. +*>\n +*> [2] Peter Poromaa, +*> On Efficient and Robust Estimators for the Separation +*> between two Regular Matrix Pairs with Applications in +*> Condition Estimation. Report UMINF-95.05, Department of +*> Computing Science, Umea University, S-901 87 Umea, Sweden, +*> 1995. +* +* ===================================================================== SUBROUTINE ZLATDF( IJOB, N, Z, LDZ, RHS, RDSUM, RDSCAL, IPIV, $ JPIV ) * -* -- LAPACK auxiliary routine (version 3.2) -- +* -- LAPACK auxiliary routine (version 3.4.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2006 +* November 2011 * * .. Scalar Arguments .. INTEGER IJOB, LDZ, N @@ -15,93 +183,6 @@ COMPLEX*16 RHS( * ), Z( LDZ, * ) * .. * -* Purpose -* ======= -* -* ZLATDF computes the contribution to the reciprocal Dif-estimate -* by solving for x in Z * x = b, where b is chosen such that the norm -* of x is as large as possible. It is assumed that LU decomposition -* of Z has been computed by ZGETC2. On entry RHS = f holds the -* contribution from earlier solved sub-systems, and on return RHS = x. -* -* The factorization of Z returned by ZGETC2 has the form -* Z = P * L * U * Q, where P and Q are permutation matrices. L is lower -* triangular with unit diagonal elements and U is upper triangular. -* -* Arguments -* ========= -* -* IJOB (input) INTEGER -* IJOB = 2: First compute an approximative null-vector e -* of Z using ZGECON, e is normalized and solve for -* Zx = +-e - f with the sign giving the greater value of -* 2-norm(x). About 5 times as expensive as Default. -* IJOB .ne. 2: Local look ahead strategy where -* all entries of the r.h.s. b is choosen as either +1 or -* -1. Default. -* -* N (input) INTEGER -* The number of columns of the matrix Z. -* -* Z (input) DOUBLE PRECISION array, dimension (LDZ, N) -* On entry, the LU part of the factorization of the n-by-n -* matrix Z computed by ZGETC2: Z = P * L * U * Q -* -* LDZ (input) INTEGER -* The leading dimension of the array Z. LDA >= max(1, N). -* -* RHS (input/output) DOUBLE PRECISION array, dimension (N). -* On entry, RHS contains contributions from other subsystems. -* On exit, RHS contains the solution of the subsystem with -* entries according to the value of IJOB (see above). -* -* RDSUM (input/output) DOUBLE PRECISION -* On entry, the sum of squares of computed contributions to -* the Dif-estimate under computation by ZTGSYL, where the -* scaling factor RDSCAL (see below) has been factored out. -* On exit, the corresponding sum of squares updated with the -* contributions from the current sub-system. -* If TRANS = 'T' RDSUM is not touched. -* NOTE: RDSUM only makes sense when ZTGSY2 is called by CTGSYL. -* -* RDSCAL (input/output) DOUBLE PRECISION -* On entry, scaling factor used to prevent overflow in RDSUM. -* On exit, RDSCAL is updated w.r.t. the current contributions -* in RDSUM. -* If TRANS = 'T', RDSCAL is not touched. -* NOTE: RDSCAL only makes sense when ZTGSY2 is called by -* ZTGSYL. -* -* IPIV (input) INTEGER array, dimension (N). -* The pivot indices; for 1 <= i <= N, row i of the -* matrix has been interchanged with row IPIV(i). -* -* JPIV (input) INTEGER array, dimension (N). -* The pivot indices; for 1 <= j <= N, column j of the -* matrix has been interchanged with column JPIV(j). -* -* Further Details -* =============== -* -* Based on contributions by -* Bo Kagstrom and Peter Poromaa, Department of Computing Science, -* Umea University, S-901 87 Umea, Sweden. -* -* This routine is a further developed implementation of algorithm -* BSOLVE in [1] using complete pivoting in the LU factorization. -* -* [1] Bo Kagstrom and Lars Westin, -* Generalized Schur Methods with Condition Estimators for -* Solving the Generalized Sylvester Equation, IEEE Transactions -* on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751. -* -* [2] Peter Poromaa, -* On Efficient and Robust Estimators for the Separation -* between two Regular Matrix Pairs with Applications in -* Condition Estimation. Report UMINF-95.05, Department of -* Computing Science, Umea University, S-901 87 Umea, Sweden, -* 1995. -* * ===================================================================== * * .. Parameters ..