version 1.4, 2010/08/06 15:32:28
|
version 1.16, 2017/06/17 11:06:24
|
Line 1
|
Line 1
|
|
*> \brief \b DLAQR1 sets a scalar multiple of the first column of the product of 2-by-2 or 3-by-3 matrix H and specified shifts. |
|
* |
|
* =========== DOCUMENTATION =========== |
|
* |
|
* Online html documentation available at |
|
* http://www.netlib.org/lapack/explore-html/ |
|
* |
|
*> \htmlonly |
|
*> Download DLAQR1 + dependencies |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaqr1.f"> |
|
*> [TGZ]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaqr1.f"> |
|
*> [ZIP]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr1.f"> |
|
*> [TXT]</a> |
|
*> \endhtmlonly |
|
* |
|
* Definition: |
|
* =========== |
|
* |
|
* SUBROUTINE DLAQR1( N, H, LDH, SR1, SI1, SR2, SI2, V ) |
|
* |
|
* .. Scalar Arguments .. |
|
* DOUBLE PRECISION SI1, SI2, SR1, SR2 |
|
* INTEGER LDH, N |
|
* .. |
|
* .. Array Arguments .. |
|
* DOUBLE PRECISION H( LDH, * ), V( * ) |
|
* .. |
|
* |
|
* |
|
*> \par Purpose: |
|
* ============= |
|
*> |
|
*> \verbatim |
|
*> |
|
*> Given a 2-by-2 or 3-by-3 matrix H, DLAQR1 sets v to a |
|
*> scalar multiple of the first column of the product |
|
*> |
|
*> (*) K = (H - (sr1 + i*si1)*I)*(H - (sr2 + i*si2)*I) |
|
*> |
|
*> scaling to avoid overflows and most underflows. It |
|
*> is assumed that either |
|
*> |
|
*> 1) sr1 = sr2 and si1 = -si2 |
|
*> or |
|
*> 2) si1 = si2 = 0. |
|
*> |
|
*> This is useful for starting double implicit shift bulges |
|
*> in the QR algorithm. |
|
*> \endverbatim |
|
* |
|
* Arguments: |
|
* ========== |
|
* |
|
*> \param[in] N |
|
*> \verbatim |
|
*> N is integer |
|
*> Order of the matrix H. N must be either 2 or 3. |
|
*> \endverbatim |
|
*> |
|
*> \param[in] H |
|
*> \verbatim |
|
*> H is DOUBLE PRECISION array of dimension (LDH,N) |
|
*> The 2-by-2 or 3-by-3 matrix H in (*). |
|
*> \endverbatim |
|
*> |
|
*> \param[in] LDH |
|
*> \verbatim |
|
*> LDH is integer |
|
*> The leading dimension of H as declared in |
|
*> the calling procedure. LDH.GE.N |
|
*> \endverbatim |
|
*> |
|
*> \param[in] SR1 |
|
*> \verbatim |
|
*> SR1 is DOUBLE PRECISION |
|
*> \endverbatim |
|
*> |
|
*> \param[in] SI1 |
|
*> \verbatim |
|
*> SI1 is DOUBLE PRECISION |
|
*> \endverbatim |
|
*> |
|
*> \param[in] SR2 |
|
*> \verbatim |
|
*> SR2 is DOUBLE PRECISION |
|
*> \endverbatim |
|
*> |
|
*> \param[in] SI2 |
|
*> \verbatim |
|
*> SI2 is DOUBLE PRECISION |
|
*> The shifts in (*). |
|
*> \endverbatim |
|
*> |
|
*> \param[out] V |
|
*> \verbatim |
|
*> V is DOUBLE PRECISION array of dimension N |
|
*> A scalar multiple of the first column of the |
|
*> matrix K in (*). |
|
*> \endverbatim |
|
* |
|
* Authors: |
|
* ======== |
|
* |
|
*> \author Univ. of Tennessee |
|
*> \author Univ. of California Berkeley |
|
*> \author Univ. of Colorado Denver |
|
*> \author NAG Ltd. |
|
* |
|
*> \date December 2016 |
|
* |
|
*> \ingroup doubleOTHERauxiliary |
|
* |
|
*> \par Contributors: |
|
* ================== |
|
*> |
|
*> Karen Braman and Ralph Byers, Department of Mathematics, |
|
*> University of Kansas, USA |
|
*> |
|
* ===================================================================== |
SUBROUTINE DLAQR1( N, H, LDH, SR1, SI1, SR2, SI2, V ) |
SUBROUTINE DLAQR1( N, H, LDH, SR1, SI1, SR2, SI2, V ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.2) -- |
* -- LAPACK auxiliary routine (version 3.7.0) -- |
* Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* November 2006 |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
|
* December 2016 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
DOUBLE PRECISION SI1, SI2, SR1, SR2 |
DOUBLE PRECISION SI1, SI2, SR1, SR2 |
Line 12
|
Line 134
|
DOUBLE PRECISION H( LDH, * ), V( * ) |
DOUBLE PRECISION H( LDH, * ), V( * ) |
* .. |
* .. |
* |
* |
* Given a 2-by-2 or 3-by-3 matrix H, DLAQR1 sets v to a |
* ================================================================ |
* scalar multiple of the first column of the product |
|
* |
|
* (*) K = (H - (sr1 + i*si1)*I)*(H - (sr2 + i*si2)*I) |
|
* |
|
* scaling to avoid overflows and most underflows. It |
|
* is assumed that either |
|
* |
|
* 1) sr1 = sr2 and si1 = -si2 |
|
* or |
|
* 2) si1 = si2 = 0. |
|
* |
|
* This is useful for starting double implicit shift bulges |
|
* in the QR algorithm. |
|
* |
|
* |
|
* N (input) integer |
|
* Order of the matrix H. N must be either 2 or 3. |
|
* |
|
* H (input) DOUBLE PRECISION array of dimension (LDH,N) |
|
* The 2-by-2 or 3-by-3 matrix H in (*). |
|
* |
|
* LDH (input) integer |
|
* The leading dimension of H as declared in |
|
* the calling procedure. LDH.GE.N |
|
* |
|
* SR1 (input) DOUBLE PRECISION |
|
* SI1 The shifts in (*). |
|
* SR2 |
|
* SI2 |
|
* |
|
* V (output) DOUBLE PRECISION array of dimension N |
|
* A scalar multiple of the first column of the |
|
* matrix K in (*). |
|
* |
|
* ================================================================ |
|
* Based on contributions by |
|
* Karen Braman and Ralph Byers, Department of Mathematics, |
|
* University of Kansas, USA |
|
* |
|
* ================================================================ |
|
* |
* |
* .. Parameters .. |
* .. Parameters .. |
DOUBLE PRECISION ZERO |
DOUBLE PRECISION ZERO |