Diff for /rpl/lapack/lapack/zhseqr.f between versions 1.15 and 1.20

version 1.15, 2016/08/27 15:34:53 version 1.20, 2023/08/07 08:39:27
Line 2 Line 2
 *  *
 *  =========== DOCUMENTATION ===========  *  =========== DOCUMENTATION ===========
 *  *
 * Online html documentation available at   * Online html documentation available at
 *            http://www.netlib.org/lapack/explore-html/   *            http://www.netlib.org/lapack/explore-html/
 *  *
 *> \htmlonly  *> \htmlonly
 *> Download ZHSEQR + dependencies   *> Download ZHSEQR + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhseqr.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhseqr.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhseqr.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhseqr.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhseqr.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhseqr.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ,  *       SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ,
 *                          WORK, LWORK, INFO )  *                          WORK, LWORK, INFO )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       INTEGER            IHI, ILO, INFO, LDH, LDZ, LWORK, N  *       INTEGER            IHI, ILO, INFO, LDH, LDZ, LWORK, N
 *       CHARACTER          COMPZ, JOB  *       CHARACTER          COMPZ, JOB
Line 28 Line 28
 *       .. Array Arguments ..  *       .. Array Arguments ..
 *       COMPLEX*16         H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )  *       COMPLEX*16         H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 69 Line 69
 *> \param[in] N  *> \param[in] N
 *> \verbatim  *> \verbatim
 *>          N is INTEGER  *>          N is INTEGER
 *>           The order of the matrix H.  N .GE. 0.  *>           The order of the matrix H.  N >= 0.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] ILO  *> \param[in] ILO
Line 86 Line 86
 *>           set by a previous call to ZGEBAL, and then passed to ZGEHRD  *>           set by a previous call to ZGEBAL, and then passed to ZGEHRD
 *>           when the matrix output by ZGEBAL is reduced to Hessenberg  *>           when the matrix output by ZGEBAL is reduced to Hessenberg
 *>           form. Otherwise ILO and IHI should be set to 1 and N  *>           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.  *>           If N = 0, then ILO = 1 and IHI = 0.
 *> \endverbatim  *> \endverbatim
 *>  *>
Line 98 Line 98
 *>           triangular matrix T from the Schur decomposition (the  *>           triangular matrix T from the Schur decomposition (the
 *>           Schur form). If INFO = 0 and JOB = 'E', the contents of  *>           Schur form). If INFO = 0 and JOB = 'E', the contents of
 *>           H are unspecified on exit.  (The output value of H when  *>           H are unspecified on exit.  (The output value of H when
 *>           INFO.GT.0 is given under the description of INFO below.)  *>           INFO > 0 is given under the description of INFO below.)
 *>  *>
 *>           Unlike earlier versions of ZHSEQR, this subroutine may  *>           Unlike earlier versions of ZHSEQR, 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.  *>           or j = IHI+1, IHI+2, ... N.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] LDH  *> \param[in] LDH
 *> \verbatim  *> \verbatim
 *>          LDH is INTEGER  *>          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  *> \endverbatim
 *>  *>
 *> \param[out] W  *> \param[out] W
Line 131 Line 131
 *>           if INFO = 0, Z contains Q*Z.  *>           if INFO = 0, Z contains Q*Z.
 *>           Normally Q is the unitary matrix generated by ZUNGHR  *>           Normally Q is the unitary matrix generated by ZUNGHR
 *>           after the call to ZGEHRD which formed the Hessenberg matrix  *>           after the call to ZGEHRD 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.)  *>           the description of INFO below.)
 *> \endverbatim  *> \endverbatim
 *>  *>
Line 139 Line 139
 *> \verbatim  *> \verbatim
 *>          LDZ is INTEGER  *>          LDZ is INTEGER
 *>           The leading dimension of the array Z.  if COMPZ = 'I' or  *>           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  *> \endverbatim
 *>  *>
 *> \param[out] WORK  *> \param[out] WORK
Line 152 Line 152
 *> \param[in] LWORK  *> \param[in] LWORK
 *> \verbatim  *> \verbatim
 *>          LWORK is INTEGER  *>          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  *>           is sufficient and delivers very good and sometimes
 *>           optimal performance.  However, LWORK as large as 11*N  *>           optimal performance.  However, LWORK as large as 11*N
 *>           may be required for optimal performance.  A workspace  *>           may be required for optimal performance.  A workspace
Line 170 Line 170
 *> \param[out] INFO  *> \param[out] INFO
 *> \verbatim  *> \verbatim
 *>          INFO is INTEGER  *>          INFO is INTEGER
 *>             =  0:  successful exit  *>             = 0:  successful exit
 *>           .LT. 0:  if INFO = -i, the i-th argument had an illegal  *>             < 0:  if INFO = -i, the i-th argument had an illegal
 *>                    value  *>                    value
 *>           .GT. 0:  if INFO = i, ZHSEQR failed to compute all of  *>             > 0:  if INFO = i, ZHSEQR failed to compute all of
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR  *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of W
 *>                and WI contain those eigenvalues which have been  *>                contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)  *>                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-  *>                remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and  *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output  *>                columns ILO through INFO of the final, output
 *>                value of H.  *>                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)  *>           (*)  (initial value of H)*U  = U*(final value of H)
 *>  *>
Line 192 Line 192
 *>                value of  H is upper Hessenberg and triangular in  *>                value of  H is upper Hessenberg and triangular in
 *>                rows and columns INFO+1 through IHI.  *>                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  *>                  (final value of Z)  =  (initial value of Z)*U
 *>  *>
 *>                where U is the unitary matrix in (*) (regard-  *>                where U is the unitary matrix in (*) (regard-
 *>                less of the value of JOB.)  *>                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  *>                      (final value of Z)  = U
 *>                where U is the unitary matrix in (*) (regard-  *>                where U is the unitary matrix in (*) (regard-
 *>                less of the value of JOB.)  *>                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.  *>                accessed.
 *> \endverbatim  *> \endverbatim
 *  *
 *  Authors:  *  Authors:
 *  ========  *  ========
 *  *
 *> \author Univ. of Tennessee   *> \author Univ. of Tennessee
 *> \author Univ. of California Berkeley   *> \author Univ. of California Berkeley
 *> \author Univ. of Colorado Denver   *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.   *> \author NAG Ltd.
 *  
 *> \date November 2013  
 *  *
 *> \ingroup complex16OTHERcomputational  *> \ingroup complex16OTHERcomputational
 *  *
Line 244 Line 242
 *>                      This depends on ILO, IHI and NS.  NS is the  *>                      This depends on ILO, IHI and NS.  NS is the
 *>                      number of simultaneous shifts returned  *>                      number of simultaneous shifts returned
 *>                      by ILAENV(ISPEC=15).  (See ISPEC=15 below.)  *>                      by ILAENV(ISPEC=15).  (See ISPEC=15 below.)
 *>                      The default for (IHI-ILO+1).LE.500 is NS.  *>                      The default for (IHI-ILO+1) <= 500 is NS.
 *>                      The default for (IHI-ILO+1).GT.500 is 3*NS/2.  *>                      The default for (IHI-ILO+1) >  500 is 3*NS/2.
 *>  *>
 *>            ISPEC=14: Nibble crossover point. (See IPARMQ for  *>            ISPEC=14: Nibble crossover point. (See IPARMQ for
 *>                      details.)  Default: 14% of deflation window  *>                      details.)  Default: 14% of deflation window
Line 299 Line 297
       SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ,        SUBROUTINE ZHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ,
      $                   WORK, LWORK, INFO )       $                   WORK, LWORK, INFO )
 *  *
 *  -- LAPACK computational routine (version 3.5.0) --  *  -- LAPACK computational routine --
 *  -- 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 2013  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER            IHI, ILO, INFO, LDH, LDZ, LWORK, N        INTEGER            IHI, ILO, INFO, LDH, LDZ, LWORK, N
Line 320 Line 317
 *     .    ZLAHQR because of insufficient subdiagonal scratch space.  *     .    ZLAHQR because of insufficient subdiagonal scratch space.
 *     .    (This is a hard limit.) ====  *     .    (This is a hard limit.) ====
       INTEGER            NTINY        INTEGER            NTINY
       PARAMETER          ( NTINY = 11 )        PARAMETER          ( NTINY = 15 )
 *  *
 *     ==== NL allocates some local workspace to help small matrices  *     ==== NL allocates some local workspace to help small matrices
 *     .    through a rare ZLAHQR failure.  NL .GT. NTINY = 11 is  *     .    through a rare ZLAHQR failure.  NL > NTINY = 15 is
 *     .    required and NL .LE. NMIN = ILAENV(ISPEC=12,...) is recom-  *     .    required and NL <= NMIN = ILAENV(ISPEC=12,...) is recom-
 *     .    mended.  (The default value of NMIN is 75.)  Using NL = 49  *     .    mended.  (The default value of NMIN is 75.)  Using NL = 49
 *     .    allows up to six simultaneous shifts and a 16-by-16  *     .    allows up to six simultaneous shifts and a 16-by-16
 *     .    deflation window.  ====  *     .    deflation window.  ====

Removed from v.1.15  
changed lines
  Added in v.1.20


CVSweb interface <joel.bertrand@systella.fr>