--- rpl/lapack/lapack/dlaic1.f 2011/07/22 07:38:06 1.8 +++ rpl/lapack/lapack/dlaic1.f 2011/11/21 20:42:55 1.9 @@ -1,9 +1,143 @@ +*> \brief \b DLAIC1 +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLAIC1 + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DLAIC1( JOB, J, X, SEST, W, GAMMA, SESTPR, S, C ) +* +* .. Scalar Arguments .. +* INTEGER J, JOB +* DOUBLE PRECISION C, GAMMA, S, SEST, SESTPR +* .. +* .. Array Arguments .. +* DOUBLE PRECISION W( J ), X( J ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DLAIC1 applies one step of incremental condition estimation in +*> its simplest version: +*> +*> Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j +*> lower triangular matrix L, such that +*> twonorm(L*x) = sest +*> Then DLAIC1 computes sestpr, s, c such that +*> the vector +*> [ s*x ] +*> xhat = [ c ] +*> is an approximate singular vector of +*> [ L 0 ] +*> Lhat = [ w**T gamma ] +*> in the sense that +*> twonorm(Lhat*xhat) = sestpr. +*> +*> Depending on JOB, an estimate for the largest or smallest singular +*> value is computed. +*> +*> Note that [s c]**T and sestpr**2 is an eigenpair of the system +*> +*> diag(sest*sest, 0) + [alpha gamma] * [ alpha ] +*> [ gamma ] +*> +*> where alpha = x**T*w. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] JOB +*> \verbatim +*> JOB is INTEGER +*> = 1: an estimate for the largest singular value is computed. +*> = 2: an estimate for the smallest singular value is computed. +*> \endverbatim +*> +*> \param[in] J +*> \verbatim +*> J is INTEGER +*> Length of X and W +*> \endverbatim +*> +*> \param[in] X +*> \verbatim +*> X is DOUBLE PRECISION array, dimension (J) +*> The j-vector x. +*> \endverbatim +*> +*> \param[in] SEST +*> \verbatim +*> SEST is DOUBLE PRECISION +*> Estimated singular value of j by j matrix L +*> \endverbatim +*> +*> \param[in] W +*> \verbatim +*> W is DOUBLE PRECISION array, dimension (J) +*> The j-vector w. +*> \endverbatim +*> +*> \param[in] GAMMA +*> \verbatim +*> GAMMA is DOUBLE PRECISION +*> The diagonal element gamma. +*> \endverbatim +*> +*> \param[out] SESTPR +*> \verbatim +*> SESTPR is DOUBLE PRECISION +*> Estimated singular value of (j+1) by (j+1) matrix Lhat. +*> \endverbatim +*> +*> \param[out] S +*> \verbatim +*> S is DOUBLE PRECISION +*> Sine needed in forming xhat. +*> \endverbatim +*> +*> \param[out] C +*> \verbatim +*> C is DOUBLE PRECISION +*> Cosine needed in forming xhat. +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \date November 2011 +* +*> \ingroup doubleOTHERauxiliary +* +* ===================================================================== SUBROUTINE DLAIC1( JOB, J, X, SEST, W, GAMMA, SESTPR, S, C ) * -* -- LAPACK auxiliary routine (version 3.3.1) -- +* -- 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..-- -* -- April 2011 -- +* November 2011 * * .. Scalar Arguments .. INTEGER J, JOB @@ -13,66 +147,6 @@ DOUBLE PRECISION W( J ), X( J ) * .. * -* Purpose -* ======= -* -* DLAIC1 applies one step of incremental condition estimation in -* its simplest version: -* -* Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j -* lower triangular matrix L, such that -* twonorm(L*x) = sest -* Then DLAIC1 computes sestpr, s, c such that -* the vector -* [ s*x ] -* xhat = [ c ] -* is an approximate singular vector of -* [ L 0 ] -* Lhat = [ w**T gamma ] -* in the sense that -* twonorm(Lhat*xhat) = sestpr. -* -* Depending on JOB, an estimate for the largest or smallest singular -* value is computed. -* -* Note that [s c]**T and sestpr**2 is an eigenpair of the system -* -* diag(sest*sest, 0) + [alpha gamma] * [ alpha ] -* [ gamma ] -* -* where alpha = x**T*w. -* -* Arguments -* ========= -* -* JOB (input) INTEGER -* = 1: an estimate for the largest singular value is computed. -* = 2: an estimate for the smallest singular value is computed. -* -* J (input) INTEGER -* Length of X and W -* -* X (input) DOUBLE PRECISION array, dimension (J) -* The j-vector x. -* -* SEST (input) DOUBLE PRECISION -* Estimated singular value of j by j matrix L -* -* W (input) DOUBLE PRECISION array, dimension (J) -* The j-vector w. -* -* GAMMA (input) DOUBLE PRECISION -* The diagonal element gamma. -* -* SESTPR (output) DOUBLE PRECISION -* Estimated singular value of (j+1) by (j+1) matrix Lhat. -* -* S (output) DOUBLE PRECISION -* Sine needed in forming xhat. -* -* C (output) DOUBLE PRECISION -* Cosine needed in forming xhat. -* * ===================================================================== * * .. Parameters ..