--- rpl/lapack/lapack/dlaqr1.f 2010/08/07 13:22:18 1.5
+++ rpl/lapack/lapack/dlaqr1.f 2020/05/21 21:46:00 1.19
@@ -1,8 +1,130 @@
+*> \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
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
+*> [TXT]
+*> \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, 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 >= 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, 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 June 2017
+*
+*> \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 )
*
-* -- LAPACK auxiliary routine (version 3.2) --
-* Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..
-* November 2006
+* -- LAPACK auxiliary routine (version 3.7.1) --
+* -- LAPACK is a software package provided by Univ. of Tennessee, --
+* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
+* June 2017
*
* .. Scalar Arguments ..
DOUBLE PRECISION SI1, SI2, SR1, SR2
@@ -12,47 +134,7 @@
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 ..
DOUBLE PRECISION ZERO
@@ -65,6 +147,13 @@
INTRINSIC ABS
* ..
* .. Executable Statements ..
+*
+* Quick return if possible
+*
+ IF( N.NE.2 .AND. N.NE.3 ) THEN
+ RETURN
+ END IF
+*
IF( N.EQ.2 ) THEN
S = ABS( H( 1, 1 )-SR2 ) + ABS( SI2 ) + ABS( H( 2, 1 ) )
IF( S.EQ.ZERO ) THEN