Developer Reference

Contents

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
wantt
is non-zero
, then the Hessenberg matrix
H
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
H
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
H
and (if
wantz
is
non-zero
), the order of the orthogonal matrix
Z
.
ktop
(global )
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
(global )
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
(global )
Deflation window size. 1
nw
(
kbot
-
ktop
+1).
h
(local ) array of size
lld_h
*
LOC
c
(
n
)
The initial
n
-by-
n
section of
H
stores the Hessenberg matrix undergoing aggressive early deflation.
desch
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
H
.
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
) 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
.
v
(global workspace) array of size
lld_v
*
LOC
c
nw
)
An
nw
-by-
nw
distributed work array.
descv
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
V
.
nh
The number of columns of
t
.
nh
nw
.
t
(global workspace) array of size
lld_t
*
LOC
c
(
nh
)
desct
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
T
.
nv
(global )
The number of rows of work array
wv
available for workspace.
nv
nw
.
wv
(global workspace) array of size
lld_w
*
LOC
c
(
nw
)
descw
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
wv
.
work
(local workspace) array of size
lwork
.
lwork
(local )
The size of the work array
work
(
lwork
1).
lwork
= 2*
nw
suffices, but greater efficiency may result from larger values of
lwork
.
If
lwork
= -1, then a workspace query is assumed;
p?laqr3
only estimates the optimal workspace size for the given values of
n
,
nw
,
ktop
and
kbot
. The estimate is returned in
work
[0]
. No error message related to
lwork
is issued by
xerbla
. Neither
h
nor
z
are accessed.
iwork
(local workspace) array of size
liwork
liwork
(local )
The length of the workspace array
iwork
(
liwork
1).
If
liwork
=-1, then a workspace query is assumed.
OUTPUT Parameters
h
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.
z
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
) from the right.
If
wantz
is
zero
, then
z
is unreferenced.
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
. 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. 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.
work
[0]
On exit, if
info
= 0,
work
[0]
returns the optimal
lwork
iwork
[0]
On exit, if
info
= 0,
iwork
[0]
returns the optimal
liwork

Product and Performance Information

1

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