version 1.1, 2010/01/26 15:22:45
|
version 1.18, 2018/05/29 07:17:56
|
Line 1
|
Line 1
|
|
*> \brief \b DLAIC1 applies one step of incremental condition estimation. |
|
* |
|
* =========== DOCUMENTATION =========== |
|
* |
|
* Online html documentation available at |
|
* http://www.netlib.org/lapack/explore-html/ |
|
* |
|
*> \htmlonly |
|
*> Download DLAIC1 + dependencies |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaic1.f"> |
|
*> [TGZ]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaic1.f"> |
|
*> [ZIP]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaic1.f"> |
|
*> [TXT]</a> |
|
*> \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 December 2016 |
|
* |
|
*> \ingroup doubleOTHERauxiliary |
|
* |
|
* ===================================================================== |
SUBROUTINE DLAIC1( JOB, J, X, SEST, W, GAMMA, SESTPR, S, C ) |
SUBROUTINE DLAIC1( JOB, J, X, SEST, W, GAMMA, SESTPR, S, C ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.2) -- |
* -- LAPACK auxiliary routine (version 3.7.0) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2006 |
* December 2016 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER J, JOB |
INTEGER J, JOB |
Line 13
|
Line 147
|
DOUBLE PRECISION W( J ), X( J ) |
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' 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]' and sestpr**2 is an eigenpair of the system |
|
* |
|
* diag(sest*sest, 0) + [alpha gamma] * [ alpha ] |
|
* [ gamma ] |
|
* |
|
* where alpha = x'*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 .. |
* .. Parameters .. |