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

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

. 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

On exit, if
info
= 0,
work

returns the optimal
lwork
iwork

On exit, if
info
= 0,
iwork

returns the optimal
liwork

#### Product and Performance Information

1

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