p?laqr3
p?laqr3
Performs the orthogonal/unitary similarity transformation of a Hessenberg matrix to detect and deflate fully converged eigenvalues from a trailing principal submatrix (aggressive early deflation).
Syntax
void pslaqr3
(
MKL_INT*
wantt
,
MKL_INT*
wantz
,
MKL_INT*
n
,
MKL_INT*
ktop
,
MKL_INT*
kbot
,
MKL_INT*
nw
,
float*
h
,
MKL_INT*
desch
,
MKL_INT*
iloz
,
MKL_INT*
ihiz
,
float*
z
,
MKL_INT*
descz
,
MKL_INT*
ns
,
MKL_INT*
nd
,
float*
sr
,
float*
si
,
float*
v
,
MKL_INT*
descv
,
MKL_INT*
nh
,
float*
t
,
MKL_INT*
desct
,
MKL_INT*
nv
,
float*
wv
,
MKL_INT*
descw
,
float*
work
,
MKL_INT*
lwork
,
MKL_INT*
iwork
,
MKL_INT*
liwork
,
MKL_INT*
reclevel
);
void pdlaqr3
(
MKL_INT*
wantt
,
MKL_INT*
wantz
,
MKL_INT*
n
,
MKL_INT*
ktop
,
MKL_INT*
kbot
,
MKL_INT*
nw
,
double*
h
,
MKL_INT*
desch
,
MKL_INT*
iloz
,
MKL_INT*
ihiz
,
double*
z
,
MKL_INT*
descz
,
MKL_INT*
ns
,
MKL_INT*
nd
,
double*
sr
,
double*
si
,
double*
v
,
MKL_INT*
descv
,
MKL_INT*
nh
,
double*
t
,
MKL_INT*
desct
,
MKL_INT*
nv
,
double*
wv
,
MKL_INT*
descw
,
double*
work
,
MKL_INT*
lwork
,
MKL_INT*
iwork
,
MKL_INT*
liwork
,
MKL_INT*
reclevel
);
Include Files
- mkl_scalapack.h
Description
This
function
accepts as input an upper Hessenberg matrix H
and performs an orthogonal similarity transformation designed to detect and deflate fully converged eigenvalues from a trailing principal submatrix. On output H
is overwritten by a new Hessenberg matrix that is a perturbation of an orthogonal similarity transformation of H
. It is to be hoped that the final version of H
has many zero subdiagonal entries. Input Parameters
- wantt
- (global )If, then the Hessenberg matrixwanttis non-zeroHis fully updated so that the quasi-triangular Schur factor may be computed (in cooperation with the callingfunction).If, then only enough ofwanttequals zeroHis updated to preserve the eigenvalues.
- wantz
- (global )If, then the orthogonal matrixwantzis non-zeroZis updated so that the orthogonal Schur factor may be computed (in cooperation with the callingfunction).If, thenwantzequals zerozis not referenced.
- n
- (global )The order of the matrixHand (ifwantzisnon-zero), the order of the orthogonal matrixZ.
- ktop
- (global )It is assumed that eitherktop= 1 orH(ktop,ktop-1)=0.kbotandktoptogether determine an isolated block along the diagonal of the Hessenberg matrix.
- kbot
- (global )It is assumed without a check that eitherkbot=norH(kbot+1,kbot)=0.kbotandktoptogether determine an isolated block along the diagonal of the Hessenberg matrix.
- nw
- (global )Deflation window size. 1≤nw≤(kbot-ktop+1).
- h
- (local ) array of sizelld_h*(LOCcn)The initialn-by-nsection ofHstores the Hessenberg matrix undergoing aggressive early deflation.
- desch
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixH.
- iloz,ihiz
- (global )Specify the rows of the matrixZto which transformations must be applied ifwantzisnon-zero. 1≤iloz≤ihiz≤n.
- z
- Array of sizelld_z *(LOCcn)Ifwantzisnon-zero, then on output, the orthogonal similarity transformation mentioned above has been accumulated into the matrixZ(iloz:ihiz,kbot:ktop) from the right.Ifwantziszero, thenzis unreferenced.
- descz
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixZ.
- v
- (global workspace) array of sizelld_v*LOCcnw)Annw-by-nwdistributed work array.
- descv
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixV.
- nh
- The number of columns oft.nh≥nw.
- t
- (global workspace) array of sizelld_t*(LOCcnh)
- desct
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixT.
- nv
- (global )The number of rows of work arraywvavailable for workspace.nv≥nw.
- wv
- (global workspace) array of sizelld_w*LOC(cnw)
- descw
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixwv.
- work
- (local workspace) array of sizelwork.
- lwork
- (local )The size of the work arraywork(lwork≥1).lwork= 2*nwsuffices, but greater efficiency may result from larger values oflwork.Iflwork= -1, then a workspace query is assumed;p?laqr3only estimates the optimal workspace size for the given values ofn,nw,ktopandkbot. The estimate is returned inwork[0]. No error message related tolworkis issued byxerbla. Neitherhnorzare accessed.
- iwork
- (local workspace) array of sizeliwork
- liwork
- (local )The length of the workspace arrayiwork(liwork≥1).Ifliwork=-1, then a workspace query is assumed.
OUTPUT Parameters
- h
- On outputhhas 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.
- z
- IFwantzisnon-zero, then on output, the orthogonal similarity transformation mentioned above has been accumulated into the matrixZ(iloz:ihiz,kbot:ktop) from the right.Ifwantziszero, thenzis unreferenced.
- ns
- (global )The number of unconverged (that is, approximate) eigenvalues returned insrandsithat may be used as shifts by the callingfunction.
- nd
- (global )The number of converged eigenvalues uncovered by thisfunction.
- sr,si
- (global ) array of sizekbot. The real and imaginary parts of approximate eigenvalues that may be used for shifts are stored in, respectively. The real and imaginary parts of converged eigenvalues are stored insr[kbot-nd-ns] throughsr[kbot-nd-1] andsi[kbot-nd-ns] throughsi[kbot-nd-1], respectively.sr[kbot-nd] throughsr[kbot-1] andsi[kbot-nd] throughsi[kbot-1]
- work[0]
- On exit, ifinfo= 0,work[0]returns the optimallwork
- iwork[0]
- On exit, ifinfo= 0,iwork[0]returns the optimalliwork