--- rpl/lapack/lapack/dhseqr.f 2012/12/14 14:22:30 1.12
+++ rpl/lapack/lapack/dhseqr.f 2023/08/07 08:38:52 1.19
@@ -2,25 +2,25 @@
*
* =========== DOCUMENTATION ===========
*
-* Online html documentation available at
-* http://www.netlib.org/lapack/explore-html/
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DHSEQR + dependencies
-*>
-*> [TGZ]
-*>
-*> [ZIP]
-*>
+*> Download DHSEQR + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
*> [TXT]
-*> \endhtmlonly
+*> \endhtmlonly
*
* Definition:
* ===========
*
* SUBROUTINE DHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, WR, WI, Z,
* LDZ, WORK, LWORK, INFO )
-*
+*
* .. Scalar Arguments ..
* INTEGER IHI, ILO, INFO, LDH, LDZ, LWORK, N
* CHARACTER COMPZ, JOB
@@ -29,7 +29,7 @@
* DOUBLE PRECISION H( LDH, * ), WI( * ), WORK( * ), WR( * ),
* $ Z( LDZ, * )
* ..
-*
+*
*
*> \par Purpose:
* =============
@@ -70,7 +70,7 @@
*> \param[in] N
*> \verbatim
*> N is INTEGER
-*> The order of the matrix H. N .GE. 0.
+*> The order of the matrix H. N >= 0.
*> \endverbatim
*>
*> \param[in] ILO
@@ -87,7 +87,7 @@
*> set by a previous call to DGEBAL, and then passed to ZGEHRD
*> when the matrix output by DGEBAL is reduced to Hessenberg
*> form. Otherwise ILO and IHI should be set to 1 and N
-*> respectively. If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N.
+*> respectively. If N > 0, then 1 <= ILO <= IHI <= N.
*> If N = 0, then ILO = 1 and IHI = 0.
*> \endverbatim
*>
@@ -100,20 +100,20 @@
*> (the Schur form); 2-by-2 diagonal blocks (corresponding to
*> complex conjugate pairs of eigenvalues) are returned in
*> standard form, with H(i,i) = H(i+1,i+1) and
-*> H(i+1,i)*H(i,i+1).LT.0. If INFO = 0 and JOB = 'E', the
+*> H(i+1,i)*H(i,i+1) < 0. If INFO = 0 and JOB = 'E', the
*> contents of H are unspecified on exit. (The output value of
-*> H when INFO.GT.0 is given under the description of INFO
+*> H when INFO > 0 is given under the description of INFO
*> below.)
*>
*> Unlike earlier versions of DHSEQR, this subroutine may
-*> explicitly H(i,j) = 0 for i.GT.j and j = 1, 2, ... ILO-1
+*> explicitly H(i,j) = 0 for i > j and j = 1, 2, ... ILO-1
*> or j = IHI+1, IHI+2, ... N.
*> \endverbatim
*>
*> \param[in] LDH
*> \verbatim
*> LDH is INTEGER
-*> The leading dimension of the array H. LDH .GE. max(1,N).
+*> The leading dimension of the array H. LDH >= max(1,N).
*> \endverbatim
*>
*> \param[out] WR
@@ -128,8 +128,8 @@
*> The real and imaginary parts, respectively, of the computed
*> eigenvalues. If two eigenvalues are computed as a complex
*> conjugate pair, they are stored in consecutive elements of
-*> WR and WI, say the i-th and (i+1)th, with WI(i) .GT. 0 and
-*> WI(i+1) .LT. 0. If JOB = 'S', the eigenvalues are stored in
+*> WR and WI, say the i-th and (i+1)th, with WI(i) > 0 and
+*> WI(i+1) < 0. If JOB = 'S', the eigenvalues are stored in
*> the same order as on the diagonal of the Schur form returned
*> in H, with WR(i) = H(i,i) and, if H(i:i+1,i:i+1) is a 2-by-2
*> diagonal block, WI(i) = sqrt(-H(i+1,i)*H(i,i+1)) and
@@ -148,7 +148,7 @@
*> if INFO = 0, Z contains Q*Z.
*> Normally Q is the orthogonal matrix generated by DORGHR
*> after the call to DGEHRD which formed the Hessenberg matrix
-*> H. (The output value of Z when INFO.GT.0 is given under
+*> H. (The output value of Z when INFO > 0 is given under
*> the description of INFO below.)
*> \endverbatim
*>
@@ -156,7 +156,7 @@
*> \verbatim
*> LDZ is INTEGER
*> The leading dimension of the array Z. if COMPZ = 'I' or
-*> COMPZ = 'V', then LDZ.GE.MAX(1,N). Otherwize, LDZ.GE.1.
+*> COMPZ = 'V', then LDZ >= MAX(1,N). Otherwise, LDZ >= 1.
*> \endverbatim
*>
*> \param[out] WORK
@@ -169,7 +169,7 @@
*> \param[in] LWORK
*> \verbatim
*> LWORK is INTEGER
-*> The dimension of the array WORK. LWORK .GE. max(1,N)
+*> The dimension of the array WORK. LWORK >= max(1,N)
*> is sufficient and delivers very good and sometimes
*> optimal performance. However, LWORK as large as 11*N
*> may be required for optimal performance. A workspace
@@ -187,21 +187,21 @@
*> \param[out] INFO
*> \verbatim
*> INFO is INTEGER
-*> = 0: successful exit
-*> .LT. 0: if INFO = -i, the i-th argument had an illegal
+*> = 0: successful exit
+*> < 0: if INFO = -i, the i-th argument had an illegal
*> value
-*> .GT. 0: if INFO = i, DHSEQR failed to compute all of
+*> > 0: if INFO = i, DHSEQR failed to compute all of
*> the eigenvalues. Elements 1:ilo-1 and i+1:n of WR
*> and WI contain those eigenvalues which have been
*> successfully computed. (Failures are rare.)
*>
-*> If INFO .GT. 0 and JOB = 'E', then on exit, the
+*> If INFO > 0 and JOB = 'E', then on exit, the
*> remaining unconverged eigenvalues are the eigen-
*> values of the upper Hessenberg matrix rows and
*> columns ILO through INFO of the final, output
*> value of H.
*>
-*> If INFO .GT. 0 and JOB = 'S', then on exit
+*> If INFO > 0 and JOB = 'S', then on exit
*>
*> (*) (initial value of H)*U = U*(final value of H)
*>
@@ -209,31 +209,29 @@
*> value of H is upper Hessenberg and quasi-triangular
*> in rows and columns INFO+1 through IHI.
*>
-*> If INFO .GT. 0 and COMPZ = 'V', then on exit
+*> If INFO > 0 and COMPZ = 'V', then on exit
*>
*> (final value of Z) = (initial value of Z)*U
*>
*> where U is the orthogonal matrix in (*) (regard-
*> less of the value of JOB.)
*>
-*> If INFO .GT. 0 and COMPZ = 'I', then on exit
+*> If INFO > 0 and COMPZ = 'I', then on exit
*> (final value of Z) = U
*> where U is the orthogonal matrix in (*) (regard-
*> less of the value of JOB.)
*>
-*> If INFO .GT. 0 and COMPZ = 'N', then Z is not
+*> If INFO > 0 and COMPZ = 'N', then Z is not
*> accessed.
*> \endverbatim
*
* Authors:
* ========
*
-*> \author Univ. of Tennessee
-*> \author Univ. of California Berkeley
-*> \author Univ. of Colorado Denver
-*> \author NAG Ltd.
-*
-*> \date November 2011
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
*
*> \ingroup doubleOTHERcomputational
*
@@ -261,8 +259,8 @@
*> This depends on ILO, IHI and NS. NS is the
*> number of simultaneous shifts returned
*> by ILAENV(ISPEC=15). (See ISPEC=15 below.)
-*> The default for (IHI-ILO+1).LE.500 is NS.
-*> The default for (IHI-ILO+1).GT.500 is 3*NS/2.
+*> The default for (IHI-ILO+1) <= 500 is NS.
+*> The default for (IHI-ILO+1) > 500 is 3*NS/2.
*>
*> ISPEC=14: Nibble crossover point. (See IPARMQ for
*> details.) Default: 14% of deflation window
@@ -316,10 +314,9 @@
SUBROUTINE DHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, WR, WI, Z,
$ LDZ, WORK, LWORK, INFO )
*
-* -- LAPACK computational routine (version 3.4.0) --
+* -- LAPACK computational routine --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* November 2011
*
* .. Scalar Arguments ..
INTEGER IHI, ILO, INFO, LDH, LDZ, LWORK, N
@@ -338,11 +335,11 @@
* . DLAHQR because of insufficient subdiagonal scratch space.
* . (This is a hard limit.) ====
INTEGER NTINY
- PARAMETER ( NTINY = 11 )
+ PARAMETER ( NTINY = 15 )
*
* ==== NL allocates some local workspace to help small matrices
-* . through a rare DLAHQR failure. NL .GT. NTINY = 11 is
-* . required and NL .LE. NMIN = ILAENV(ISPEC=12,...) is recom-
+* . through a rare DLAHQR failure. NL > NTINY = 15 is
+* . required and NL <= NMIN = ILAENV(ISPEC=12,...) is recom-
* . mended. (The default value of NMIN is 75.) Using NL = 49
* . allows up to six simultaneous shifts and a 16-by-16
* . deflation window. ====