Namespace: DotNumerics.LinearAlgebra.CSLapackAssembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax public void Run(
bool WANTT,
bool WANTZ,
int KACC22,
int N,
int KTOP,
int KBOT,
int NSHFTS,
ref double[] SR,
int offset_sr,
ref double[] SI,
int offset_si,
ref double[] H,
int offset_h,
int LDH,
int ILOZ,
int IHIZ,
ref double[] Z,
int offset_z,
int LDZ,
ref double[] V,
int offset_v,
int LDV,
ref double[] U,
int offset_u,
int LDU,
int NV,
ref double[] WV,
int offset_wv,
int LDWV,
int NH,
ref double[] WH,
int offset_wh,
int LDWH
)
Public Sub Run (
WANTT As Boolean,
WANTZ As Boolean,
KACC22 As Integer,
N As Integer,
KTOP As Integer,
KBOT As Integer,
NSHFTS As Integer,
ByRef SR As Double(),
offset_sr As Integer,
ByRef SI As Double(),
offset_si As Integer,
ByRef H As Double(),
offset_h As Integer,
LDH As Integer,
ILOZ As Integer,
IHIZ As Integer,
ByRef Z As Double(),
offset_z As Integer,
LDZ As Integer,
ByRef V As Double(),
offset_v As Integer,
LDV As Integer,
ByRef U As Double(),
offset_u As Integer,
LDU As Integer,
NV As Integer,
ByRef WV As Double(),
offset_wv As Integer,
LDWV As Integer,
NH As Integer,
ByRef WH As Double(),
offset_wh As Integer,
LDWH As Integer
)
Request Example
View SourceParameters
- WANTT Boolean
-
(input) logical scalar
WANTT = .true. if the quasi-triangular Schur factor
is being computed. WANTT is set to .false. otherwise.
- WANTZ Boolean
-
(input) logical scalar
WANTZ = .true. if the orthogonal Schur factor is being
computed. WANTZ is set to .false. otherwise.
- KACC22 Int32
-
(input) integer with value 0, 1, or 2.
Specifies the computation mode of far-from-diagonal
orthogonal updates.
= 0: DLAQR5 does not accumulate reflections and does not
use matrix-matrix multiply to update far-from-diagonal
matrix entries.
= 1: DLAQR5 accumulates reflections and uses matrix-matrix
multiply to update the far-from-diagonal matrix entries.
= 2: DLAQR5 accumulates reflections, uses matrix-matrix
multiply to update the far-from-diagonal matrix entries,
and takes advantage of 2-by-2 block structure during
matrix multiplies.
- N Int32
-
(input) integer scalar
N is the order of the Hessenberg matrix H upon which this
subroutine operates.
- KTOP Int32
-
(input) integer scalar
- KBOT Int32
-
(input) integer scalar
These are the first and last rows and columns of an
isolated diagonal block upon which the QR sweep is to be
applied. It is assumed without a check that
either KTOP = 1 or H(KTOP,KTOP-1) = 0
and
either KBOT = N or H(KBOT+1,KBOT) = 0.
- NSHFTS Int32
-
(input) integer scalar
NSHFTS gives the number of simultaneous shifts. NSHFTS
must be positive and even.
- SR Double
-
(input) DOUBLE PRECISION array of size (NSHFTS)
- offset_sr Int32
-
- SI Double
-
(input) DOUBLE PRECISION array of size (NSHFTS)
SR contains the real parts and SI contains the imaginary
parts of the NSHFTS shifts of origin that define the
multi-shift QR sweep.
- offset_si Int32
-
- H Double
-
(input/output) DOUBLE PRECISION array of size (LDH,N)
On input H contains a Hessenberg matrix. On output a
multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied
to the isolated diagonal block in rows and columns KTOP
through KBOT.
- offset_h Int32
-
- LDH Int32
-
(input) integer scalar
LDH is the leading dimension of H just as declared in the
calling procedure. LDH.GE.MAX(1,N).
- ILOZ Int32
-
(input) INTEGER
- IHIZ Int32
-
(input) INTEGER
Specify the rows of Z to which transformations must be
applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N
- Z Double
-
(input/output) DOUBLE PRECISION array of size (LDZ,IHI)
If WANTZ = .TRUE., then the QR Sweep orthogonal
similarity transformation is accumulated into
Z(ILOZ:IHIZ,ILO:IHI) from the right.
If WANTZ = .FALSE., then Z is unreferenced.
- offset_z Int32
-
- LDZ Int32
-
(input) integer scalar
LDA is the leading dimension of Z just as declared in
the calling procedure. LDZ.GE.N.
- V Double
-
(workspace) DOUBLE PRECISION array of size (LDV,NSHFTS/2)
- offset_v Int32
-
- LDV Int32
-
(input) integer scalar
LDV is the leading dimension of V as declared in the
calling procedure. LDV.GE.3.
- U Double
-
(workspace) DOUBLE PRECISION array of size
(LDU,3*NSHFTS-3)
- offset_u Int32
-
- LDU Int32
-
(input) integer scalar
LDU is the leading dimension of U just as declared in the
in the calling subroutine. LDU.GE.3*NSHFTS-3.
- NV Int32
-
(input) integer scalar
NV is the number of rows in WV agailable for workspace.
NV.GE.1.
- WV Double
-
(workspace) DOUBLE PRECISION array of size
(LDWV,3*NSHFTS-3)
- offset_wv Int32
-
- LDWV Int32
-
(input) integer scalar
LDWV is the leading dimension of WV as declared in the
in the calling subroutine. LDWV.GE.NV.
- NH Int32
-
(input) integer scalar
NH is the number of columns in array WH available for
workspace. NH.GE.1.
- WH Double
-
(workspace) DOUBLE PRECISION array of size (LDWH,NH)
- offset_wh Int32
-
- LDWH Int32
-
(input) integer scalar
Leading dimension of WH just as declared in the
calling procedure. LDWH.GE.3*NSHFTS-3.
See Also