Click or drag to resize

DLAQR2Run Method


Namespace: DotNumerics.LinearAlgebra.CSLapack
Assembly: 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 N,
	int KTOP,
	int KBOT,
	int NW,
	ref double[] H,
	int offset_h,
	int LDH,
	int ILOZ,
	int IHIZ,
	ref double[] Z,
	int offset_z,
	int LDZ,
	ref int NS,
	ref int ND,
	ref double[] SR,
	int offset_sr,
	ref double[] SI,
	int offset_si,
	ref double[] V,
	int offset_v,
	int LDV,
	int NH,
	ref double[] T,
	int offset_t,
	int LDT,
	int NV,
	ref double[] WV,
	int offset_wv,
	int LDWV,
	ref double[] WORK,
	int offset_work,
	int LWORK
)
Request Example View Source

Parameters

WANTT  Boolean
(input) LOGICAL If .TRUE., then the Hessenberg matrix H is fully updated so that the quasi-triangular Schur factor may be computed (in cooperation with the calling subroutine). If .FALSE., then only enough of H is updated to preserve the eigenvalues.
WANTZ  Boolean
(input) LOGICAL If .TRUE., then the orthogonal matrix Z is updated so so that the orthogonal Schur factor may be computed (in cooperation with the calling subroutine). If .FALSE., then Z is not referenced.
N  Int32
(input) INTEGER The order of the matrix H and (if WANTZ is .TRUE.) the order of the orthogonal matrix Z.
KTOP  Int32
(input) INTEGER It is assumed that either KTOP = 1 or H(KTOP,KTOP-1)=0. KBOT and KTOP together determine an isolated block along the diagonal of the Hessenberg matrix.
KBOT  Int32
(input) INTEGER It is assumed without a check that either KBOT = N or H(KBOT+1,KBOT)=0. KBOT and KTOP together determine an isolated block along the diagonal of the Hessenberg matrix.
NW  Int32
(input) INTEGER Deflation window size. 1 .LE. NW .LE. (KBOT-KTOP+1).
H  Double
(input/output) DOUBLE PRECISION array, dimension (LDH,N) On input the initial N-by-N section of H stores the Hessenberg matrix undergoing aggressive early deflation. On output H has been transformed by an orthogonal similarity transformation, perturbed, and the returned to Hessenberg form that (it is to be hoped) has some zero subdiagonal entries.
offset_h  Int32
 
LDH  Int32
(input) integer Leading dimension of H just as declared in the calling subroutine. N .LE. LDH
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, dimension (LDZ,IHI) IF WANTZ is .TRUE., then on output, the orthogonal similarity transformation mentioned above has been accumulated into Z(ILOZ:IHIZ,ILO:IHI) from the right. If WANTZ is .FALSE., then Z is unreferenced.
offset_z  Int32
 
LDZ  Int32
(input) integer The leading dimension of Z just as declared in the calling subroutine. 1 .LE. LDZ.
NS  Int32
(output) integer The number of unconverged (ie approximate) eigenvalues returned in SR and SI that may be used as shifts by the calling subroutine.
ND  Int32
(output) integer The number of converged eigenvalues uncovered by this subroutine.
SR  Double
(output) DOUBLE PRECISION array, dimension KBOT
offset_sr  Int32
 
SI  Double
(output) DOUBLE PRECISION array, dimension KBOT On output, the real and imaginary parts of approximate eigenvalues that may be used for shifts are stored in SR(KBOT-ND-NS+1) through SR(KBOT-ND) and SI(KBOT-ND-NS+1) through SI(KBOT-ND), respectively. The real and imaginary parts of converged eigenvalues are stored in SR(KBOT-ND+1) through SR(KBOT) and SI(KBOT-ND+1) through SI(KBOT), respectively.
offset_si  Int32
 
V  Double
(workspace) DOUBLE PRECISION array, dimension (LDV,NW) An NW-by-NW work array.
offset_v  Int32
 
LDV  Int32
(input) integer scalar The leading dimension of V just as declared in the calling subroutine. NW .LE. LDV
NH  Int32
(input) integer scalar The number of columns of T. NH.GE.NW.
T  Double
(workspace) DOUBLE PRECISION array, dimension (LDT,NW)
offset_t  Int32
 
LDT  Int32
(input) integer The leading dimension of T just as declared in the calling subroutine. NW .LE. LDT
NV  Int32
(input) integer The number of rows of work array WV available for workspace. NV.GE.NW.
WV  Double
(workspace) DOUBLE PRECISION array, dimension (LDWV,NW)
offset_wv  Int32
 
LDWV  Int32
(input) integer The leading dimension of W just as declared in the calling subroutine. NW .LE. LDV
WORK  Double
(workspace) DOUBLE PRECISION array, dimension LWORK. On exit, WORK(1) is set to an estimate of the optimal value of LWORK for the given values of N, NW, KTOP and KBOT.
offset_work  Int32
 
LWORK  Int32
(input) integer The dimension of the work array WORK. LWORK = 2*NW suffices, but greater efficiency may result from larger values of LWORK. If LWORK = -1, then a workspace query is assumed; DLAQR2 only estimates the optimal workspace size for the given values of N, NW, KTOP and KBOT. The estimate is returned in WORK(1). No error message related to LWORK is issued by XERBLA. Neither H nor Z are accessed.
See Also