p?laqr2
p?laqr2
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 pslaqr2
(
MKL_INT*
wantt
,
MKL_INT*
wantz
,
MKL_INT*
n
,
MKL_INT*
ktop
,
MKL_INT*
kbot
,
MKL_INT*
nw
,
float*
a
,
MKL_INT*
desca
,
MKL_INT*
iloz
,
MKL_INT*
ihiz
,
float*
z
,
MKL_INT*
descz
,
MKL_INT*
ns
,
MKL_INT*
nd
,
float*
sr
,
float*
si
,
float*
t
,
MKL_INT*
ldt
,
float*
v
,
MKL_INT*
ldv
,
float*
wr
,
float*
wi
,
float*
work
,
MKL_INT*
lwork
);
void pdlaqr2
(
MKL_INT*
wantt
,
MKL_INT*
wantz
,
MKL_INT*
n
,
MKL_INT*
ktop
,
MKL_INT*
kbot
,
MKL_INT*
nw
,
double*
a
,
MKL_INT*
desca
,
MKL_INT*
iloz
,
MKL_INT*
ihiz
,
double*
z
,
MKL_INT*
descz
,
MKL_INT*
ns
,
MKL_INT*
nd
,
double*
sr
,
double*
si
,
double*
t
,
MKL_INT*
ldt
,
double*
v
,
MKL_INT*
ldv
,
double*
wr
,
double*
wi
,
double*
work
,
MKL_INT*
lwork
);
Include Files
- mkl_scalapack.h
Description
p?laqr2
accepts as input an upper Hessenberg matrix A
and performs an orthogonal similarity transformation designed to detect and deflate fully converged eigenvalues from a trailing principal submatrix. On output A
is overwritten by a new Hessenberg matrix that is a perturbation of an orthogonal similarity transformation of A
. It is to be hoped that the final version of A
has many zero subdiagonal entries. This
function
handles small deflation windows which is affordable by one processor. Normally, it is called by p?laqr1
. All the inputs are assumed to be valid without checking. Optimization Notice
|
---|
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804
|
This notice covers the following instruction sets: SSE2, SSE4.2, AVX2, AVX-512.
Input Parameters
- wantt
- (global )If, then the Hessenberg matrixwanttis non-zeroAis fully updated so that the quasi-triangular Schur factor may be computed (in cooperation with the callingfunction).If, then only enough ofwanttequals zeroAis 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 matrixAand (ifwantzisnon-zero) the order of the orthogonal matrixZ.
- ktop,kbot
- (global )It is assumed without a check that eitherkbot=norA(kbot+1,kbot)=0.kbotandktoptogether determine an isolated block along the diagonal of the Hessenberg matrix. However,A(ktop,ktop-1)=0 is not essentially necessary ifwanttisnon-zero.
- nw
- (global )Deflation window size. 1≤nw≤(kbot-ktop+1). Normallynw≥3 ifp?laqr2is called byp?laqr1.
- a
- (local ) array of sizelld_a*(LOCcn)The initialn-by-nsection ofastores the Hessenberg matrix undergoing aggressive early deflation.
- desca
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixA.
- iloz,ihiz
- (global )Specify the rows ofthe matrixto which transformations must be applied ifZwantzisnon-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 intothe matrix(Ziloz:ihiz,kbot:ktop), stored infrom the right.z,Ifwantziszero, thenzis unreferenced.
- descz
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixZ.
- t
- (local workspace) array of size.ldt*nw
- ldt
- (local )The leading dimension of the arrayt.ldt≥nw.
- v
- (local workspace) array of size.ldv*nw
- ldv
- (local )The leading dimension of the arrayv.ldv≥nw.
- wr,wi
- (local workspace) array of sizekbot.
- work
- (local workspace) array of sizelwork.
- lwork
- (local )work(lwork) is a local array andlworkis assumed big enough so thatlwork≥nw*nw.
OUTPUT Parameters
- a
- On outputahas been transformed by an orthogonal similarity transformation, perturbed, and returned to Hessenberg form that (it is to be hoped) has some zero subdiagonal entries.
- z
- 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 sizekbotOn output, the real and imaginary parts of approximate eigenvalues that may be used for shifts are stored in, respectively.sr[kbot-nd-ns] throughsr[kbot-nd-1] andsi[kbot-nd-ns] throughsi[kbot-nd-1]On processor #0, the real and imaginary parts of converged eigenvalues are stored in, respectively. On other processors, these entries are set to zero.sr[kbot-nd] throughsr[kbot-1] andsi[kbot-nd] throughsi[kbot-1]