Developer Reference

Contents

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.
Product and Performance Information
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.
Notice revision #20201201
Input Parameters
wantt
(global )
If
wantt
is non-zero
, then the Hessenberg matrix
A
is fully updated so that the quasi-triangular Schur factor may be computed (in cooperation with the calling
function
).
If
wantt
equals zero
, then only enough of
A
is updated to preserve the eigenvalues.
wantz
(global )
If
wantz
is non-zero
, then the orthogonal matrix
Z
is updated so that the orthogonal Schur factor may be computed (in cooperation with the calling
function
).
If
wantz
equals zero
, then
z
is not referenced.
n
(global )
The order of the matrix
A
and (if
wantz
is
non-zero
) the order of the orthogonal matrix
Z
.
ktop
,
kbot
(global )
It is assumed without a check that either
kbot
=
n
or
A
(
kbot
+1,
kbot
)=0.
kbot
and
ktop
together determine an isolated block along the diagonal of the Hessenberg matrix. However,
A
(
ktop
,
ktop
-1)=0 is not essentially necessary if
wantt
is
non-zero
.
nw
(global )
Deflation window size. 1
nw
(
kbot
-
ktop
+1). Normally
nw
3 if
p?laqr2
is called by
p?laqr1
.
a
(local ) array of size
lld_a
*
LOC
c
(
n
)
The initial
n
-by-
n
section of
a
stores the Hessenberg matrix undergoing aggressive early deflation.
desca
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
A
.
iloz
,
ihiz
(global )
Specify the rows of
the matrix
Z
to which transformations must be applied if
wantz
is
non-zero
. 1
iloz
ihiz
n
.
z
Array of size
lld_z
*
LOC
c
(
n
)
If
wantz
is
non-zero
, then on output, the orthogonal similarity transformation mentioned above has been accumulated into
the matrix
Z
(
iloz
:
ihiz
,
kbot
:
ktop
)
, stored in
z
,
from the right.
If
wantz
is
zero
, then
z
is unreferenced.
descz
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
Z
.
t
(local workspace) array of size
ldt
*
nw
.
ldt
(local )
The leading dimension of the array
t
.
ldt
nw
.
v
(local workspace) array of size
ldv
*
nw
.
ldv
(local )
The leading dimension of the array
v
.
ldv
nw
.
wr
,
wi
(local workspace) array of size
kbot
.
work
(local workspace) array of size
lwork
.
lwork
(local )
work
(
lwork
) is a local array and
lwork
is assumed big enough so that
lwork
nw
*
nw
.
OUTPUT Parameters
a
On output
a
has 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 in
sr
and
si
that may be used as shifts by the calling
function
.
nd
(global )
The number of converged eigenvalues uncovered by this
function
.
sr
,
si
(global ) array of size
kbot
On output, the real and imaginary parts of approximate eigenvalues that may be used for shifts are stored in
sr
[
kbot
-
nd
-
ns
] through
sr
[
kbot
-
nd
-1] and
si
[
kbot
-
nd
-
ns
] through
si
[
kbot
-
nd
-1]
, respectively.
On processor #0, the real and imaginary parts of converged eigenvalues are stored in
sr
[
kbot
-
nd
] through
sr
[
kbot
-1] and
si
[
kbot
-
nd
] through
si
[
kbot
-1]
, respectively. On other processors, these entries are set to zero.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.