claqr3.f.html
来自「famous linear algebra library (LAPACK) p」· HTML 代码 · 共 473 行 · 第 1/3 页
HTML
473 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>claqr3.f</title>
<meta name="generator" content="emacs 21.3.1; htmlfontify 0.20">
<style type="text/css"><!--
body { background: rgb(255, 255, 255); color: rgb(0, 0, 0); font-style: normal; font-weight: 500; font-stretch: normal; font-family: adobe-courier; font-size: 11pt; text-decoration: none; }
span.default { background: rgb(255, 255, 255); color: rgb(0, 0, 0); font-style: normal; font-weight: 500; font-stretch: normal; font-family: adobe-courier; font-size: 11pt; text-decoration: none; }
span.default a { background: rgb(255, 255, 255); color: rgb(0, 0, 0); font-style: normal; font-weight: 500; font-stretch: normal; font-family: adobe-courier; font-size: 11pt; text-decoration: underline; }
span.string { color: rgb(188, 143, 143); background: rgb(255, 255, 255); font-style: normal; font-weight: 500; font-stretch: normal; font-family: adobe-courier; font-size: 11pt; text-decoration: none; }
span.string a { color: rgb(188, 143, 143); background: rgb(255, 255, 255); font-style: normal; font-weight: 500; font-stretch: normal; font-family: adobe-courier; font-size: 11pt; text-decoration: underline; }
span.comment { color: rgb(178, 34, 34); background: rgb(255, 255, 255); font-style: normal; font-weight: 500; font-stretch: normal; font-family: adobe-courier; font-size: 11pt; text-decoration: none; }
span.comment a { color: rgb(178, 34, 34); background: rgb(255, 255, 255); font-style: normal; font-weight: 500; font-stretch: normal; font-family: adobe-courier; font-size: 11pt; text-decoration: underline; }
--></style>
</head>
<body>
<pre>
SUBROUTINE <a name="CLAQR3.1"></a><a href="claqr3.f.html#CLAQR3.1">CLAQR3</a>( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ,
$ IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT,
$ NV, WV, LDWV, WORK, LWORK )
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> -- LAPACK auxiliary routine (version 3.1) --
</span><span class="comment">*</span><span class="comment"> Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
</span><span class="comment">*</span><span class="comment"> November 2006
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> .. Scalar Arguments ..
</span> INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV,
$ LDZ, LWORK, N, ND, NH, NS, NV, NW
LOGICAL WANTT, WANTZ
<span class="comment">*</span><span class="comment"> ..
</span><span class="comment">*</span><span class="comment"> .. Array Arguments ..
</span> COMPLEX H( LDH, * ), SH( * ), T( LDT, * ), V( LDV, * ),
$ WORK( * ), WV( LDWV, * ), Z( LDZ, * )
<span class="comment">*</span><span class="comment"> ..
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> ******************************************************************
</span><span class="comment">*</span><span class="comment"> Aggressive early deflation:
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> This subroutine accepts as input an upper Hessenberg matrix
</span><span class="comment">*</span><span class="comment"> H and performs an unitary similarity transformation
</span><span class="comment">*</span><span class="comment"> designed to detect and deflate fully converged eigenvalues from
</span><span class="comment">*</span><span class="comment"> a trailing principal submatrix. On output H has been over-
</span><span class="comment">*</span><span class="comment"> written by a new Hessenberg matrix that is a perturbation of
</span><span class="comment">*</span><span class="comment"> an unitary similarity transformation of H. It is to be
</span><span class="comment">*</span><span class="comment"> hoped that the final version of H has many zero subdiagonal
</span><span class="comment">*</span><span class="comment"> entries.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> ******************************************************************
</span><span class="comment">*</span><span class="comment"> WANTT (input) LOGICAL
</span><span class="comment">*</span><span class="comment"> If .TRUE., then the Hessenberg matrix H is fully updated
</span><span class="comment">*</span><span class="comment"> so that the triangular Schur factor may be
</span><span class="comment">*</span><span class="comment"> computed (in cooperation with the calling subroutine).
</span><span class="comment">*</span><span class="comment"> If .FALSE., then only enough of H is updated to preserve
</span><span class="comment">*</span><span class="comment"> the eigenvalues.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> WANTZ (input) LOGICAL
</span><span class="comment">*</span><span class="comment"> If .TRUE., then the unitary matrix Z is updated so
</span><span class="comment">*</span><span class="comment"> so that the unitary Schur factor may be computed
</span><span class="comment">*</span><span class="comment"> (in cooperation with the calling subroutine).
</span><span class="comment">*</span><span class="comment"> If .FALSE., then Z is not referenced.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> N (input) INTEGER
</span><span class="comment">*</span><span class="comment"> The order of the matrix H and (if WANTZ is .TRUE.) the
</span><span class="comment">*</span><span class="comment"> order of the unitary matrix Z.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> KTOP (input) INTEGER
</span><span class="comment">*</span><span class="comment"> It is assumed that either KTOP = 1 or H(KTOP,KTOP-1)=0.
</span><span class="comment">*</span><span class="comment"> KBOT and KTOP together determine an isolated block
</span><span class="comment">*</span><span class="comment"> along the diagonal of the Hessenberg matrix.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> KBOT (input) INTEGER
</span><span class="comment">*</span><span class="comment"> It is assumed without a check that either
</span><span class="comment">*</span><span class="comment"> KBOT = N or H(KBOT+1,KBOT)=0. KBOT and KTOP together
</span><span class="comment">*</span><span class="comment"> determine an isolated block along the diagonal of the
</span><span class="comment">*</span><span class="comment"> Hessenberg matrix.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> NW (input) INTEGER
</span><span class="comment">*</span><span class="comment"> Deflation window size. 1 .LE. NW .LE. (KBOT-KTOP+1).
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> H (input/output) COMPLEX array, dimension (LDH,N)
</span><span class="comment">*</span><span class="comment"> On input the initial N-by-N section of H stores the
</span><span class="comment">*</span><span class="comment"> Hessenberg matrix undergoing aggressive early deflation.
</span><span class="comment">*</span><span class="comment"> On output H has been transformed by a unitary
</span><span class="comment">*</span><span class="comment"> similarity transformation, perturbed, and the returned
</span><span class="comment">*</span><span class="comment"> to Hessenberg form that (it is to be hoped) has some
</span><span class="comment">*</span><span class="comment"> zero subdiagonal entries.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LDH (input) integer
</span><span class="comment">*</span><span class="comment"> Leading dimension of H just as declared in the calling
</span><span class="comment">*</span><span class="comment"> subroutine. N .LE. LDH
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> ILOZ (input) INTEGER
</span><span class="comment">*</span><span class="comment"> IHIZ (input) INTEGER
</span><span class="comment">*</span><span class="comment"> Specify the rows of Z to which transformations must be
</span><span class="comment">*</span><span class="comment"> applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Z (input/output) COMPLEX array, dimension (LDZ,IHI)
</span><span class="comment">*</span><span class="comment"> IF WANTZ is .TRUE., then on output, the unitary
</span><span class="comment">*</span><span class="comment"> similarity transformation mentioned above has been
</span><span class="comment">*</span><span class="comment"> accumulated into Z(ILOZ:IHIZ,ILO:IHI) from the right.
</span><span class="comment">*</span><span class="comment"> If WANTZ is .FALSE., then Z is unreferenced.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LDZ (input) integer
</span><span class="comment">*</span><span class="comment"> The leading dimension of Z just as declared in the
</span><span class="comment">*</span><span class="comment"> calling subroutine. 1 .LE. LDZ.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> NS (output) integer
</span><span class="comment">*</span><span class="comment"> The number of unconverged (ie approximate) eigenvalues
</span><span class="comment">*</span><span class="comment"> returned in SR and SI that may be used as shifts by the
</span><span class="comment">*</span><span class="comment"> calling subroutine.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> ND (output) integer
</span><span class="comment">*</span><span class="comment"> The number of converged eigenvalues uncovered by this
</span><span class="comment">*</span><span class="comment"> subroutine.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> SH (output) COMPLEX array, dimension KBOT
</span><span class="comment">*</span><span class="comment"> On output, approximate eigenvalues that may
</span><span class="comment">*</span><span class="comment"> be used for shifts are stored in SH(KBOT-ND-NS+1)
</span><span class="comment">*</span><span class="comment"> through SR(KBOT-ND). Converged eigenvalues are
</span><span class="comment">*</span><span class="comment"> stored in SH(KBOT-ND+1) through SH(KBOT).
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> V (workspace) COMPLEX array, dimension (LDV,NW)
</span><span class="comment">*</span><span class="comment"> An NW-by-NW work array.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LDV (input) integer scalar
</span><span class="comment">*</span><span class="comment"> The leading dimension of V just as declared in the
</span><span class="comment">*</span><span class="comment"> calling subroutine. NW .LE. LDV
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> NH (input) integer scalar
</span><span class="comment">*</span><span class="comment"> The number of columns of T. NH.GE.NW.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> T (workspace) COMPLEX array, dimension (LDT,NW)
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LDT (input) integer
</span><span class="comment">*</span><span class="comment"> The leading dimension of T just as declared in the
</span><span class="comment">*</span><span class="comment"> calling subroutine. NW .LE. LDT
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> NV (input) integer
</span><span class="comment">*</span><span class="comment"> The number of rows of work array WV available for
</span><span class="comment">*</span><span class="comment"> workspace. NV.GE.NW.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> WV (workspace) COMPLEX array, dimension (LDWV,NW)
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LDWV (input) integer
</span><span class="comment">*</span><span class="comment"> The leading dimension of W just as declared in the
</span><span class="comment">*</span><span class="comment"> calling subroutine. NW .LE. LDV
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> WORK (workspace) COMPLEX array, dimension LWORK.
</span><span class="comment">*</span><span class="comment"> On exit, WORK(1) is set to an estimate of the optimal value
</span><span class="comment">*</span><span class="comment"> of LWORK for the given values of N, NW, KTOP and KBOT.
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> LWORK (input) integer
</span><span class="comment">*</span><span class="comment"> The dimension of the work array WORK. LWORK = 2*NW
</span><span class="comment">*</span><span class="comment"> suffices, but greater efficiency may result from larger
</span><span class="comment">*</span><span class="comment"> values of LWORK.
</span><span class="comment">*</span><span class="comment">
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?