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.
3 * =========== DOCUMENTATION ===========
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
9 *> Download DLAQR1 + dependencies
10 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaqr1.f">
12 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaqr1.f">
14 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr1.f">
21 * SUBROUTINE DLAQR1( N, H, LDH, SR1, SI1, SR2, SI2, V )
23 * .. Scalar Arguments ..
24 * DOUBLE PRECISION SI1, SI2, SR1, SR2
27 * .. Array Arguments ..
28 * DOUBLE PRECISION H( LDH, * ), V( * )
37 *> Given a 2-by-2 or 3-by-3 matrix H, DLAQR1 sets v to a
38 *> scalar multiple of the first column of the product
40 *> (*) K = (H - (sr1 + i*si1)*I)*(H - (sr2 + i*si2)*I)
42 *> scaling to avoid overflows and most underflows. It
43 *> is assumed that either
45 *> 1) sr1 = sr2 and si1 = -si2
49 *> This is useful for starting double implicit shift bulges
50 *> in the QR algorithm.
59 *> Order of the matrix H. N must be either 2 or 3.
64 *> H is DOUBLE PRECISION array of dimension (LDH,N)
65 *> The 2-by-2 or 3-by-3 matrix H in (*).
71 *> The leading dimension of H as declared in
72 *> the calling procedure. LDH.GE.N
77 *> SR1 is DOUBLE PRECISION
82 *> SI1 is DOUBLE PRECISION
87 *> SR2 is DOUBLE PRECISION
92 *> SI2 is DOUBLE PRECISION
98 *> V is DOUBLE PRECISION array of dimension N
99 *> A scalar multiple of the first column of the
106 *> \author Univ. of Tennessee
107 *> \author Univ. of California Berkeley
108 *> \author Univ. of Colorado Denver
111 *> \date September 2012
113 *> \ingroup doubleOTHERauxiliary
115 *> \par Contributors:
118 *> Karen Braman and Ralph Byers, Department of Mathematics,
119 *> University of Kansas, USA
121 * =====================================================================
122 SUBROUTINE DLAQR1( N, H, LDH, SR1, SI1, SR2, SI2, V )
124 * -- LAPACK auxiliary routine (version 3.4.2) --
125 * -- LAPACK is a software package provided by Univ. of Tennessee, --
126 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
129 * .. Scalar Arguments ..
130 DOUBLE PRECISION SI1, SI2, SR1, SR2
133 * .. Array Arguments ..
134 DOUBLE PRECISION H( LDH, * ), V( * )
137 * ================================================================
140 DOUBLE PRECISION ZERO
141 PARAMETER ( ZERO = 0.0d0 )
143 * .. Local Scalars ..
144 DOUBLE PRECISION H21S, H31S, S
146 * .. Intrinsic Functions ..
149 * .. Executable Statements ..
151 S = ABS( H( 1, 1 )-SR2 ) + ABS( SI2 ) + ABS( H( 2, 1 ) )
157 V( 1 ) = H21S*H( 1, 2 ) + ( H( 1, 1 )-SR1 )*
158 $ ( ( H( 1, 1 )-SR2 ) / S ) - SI1*( SI2 / S )
159 V( 2 ) = H21S*( H( 1, 1 )+H( 2, 2 )-SR1-SR2 )
162 S = ABS( H( 1, 1 )-SR2 ) + ABS( SI2 ) + ABS( H( 2, 1 ) ) +
171 V( 1 ) = ( H( 1, 1 )-SR1 )*( ( H( 1, 1 )-SR2 ) / S ) -
172 $ SI1*( SI2 / S ) + H( 1, 2 )*H21S + H( 1, 3 )*H31S
173 V( 2 ) = H21S*( H( 1, 1 )+H( 2, 2 )-SR1-SR2 ) +
175 V( 3 ) = H31S*( H( 1, 1 )+H( 3, 3 )-SR1-SR2 ) +