Contents

p?laqr5

Performs a single small-bulge multi-shift QR sweep.

Syntax

Include Files
• mkl_scalapack.h
Description
This auxiliary
function
called by
p?laqr0
performs a single small-bulge multi-shift QR sweep by chasing separated groups of bulges along the main block diagonal of a Hessenberg matrix
H
.
Input Parameters
wantt
(global) scalar
wantt
is non-zero
if the quasi-triangular Schur factor is being computed.
wantt
is set to
zero
otherwise.
wantz
(global) scalar
wantz
is non-zero
if the orthogonal Schur factor is being computed.
wantz
is set to
zero
otherwise.
kacc22
(global)
Value 0, 1, or 2. Specifies the computation mode of far-from-diagonal orthogonal updates.
= 0:
p?laqr5
does not accumulate reflections and does not use matrix-matrix multiply to update far-from-diagonal matrix entries.
= 1:
p?laqr5
accumulates reflections and uses matrix-matrix multiply to update the far-from-diagonal matrix entries.
= 2:
p?laqr5
accumulates reflections, uses matrix-matrix multiply to update the far-from-diagonal matrix entries, and takes advantage of 2-by-2 block structure during matrix multiplies.
n
(global) scalar
The order of the Hessenberg matrix
H
and, if
wantz
is non-zero
, the order of the orthogonal matrix
Z
.
ktop
,
kbot
(global) scalar
These are the first and last rows and columns of an isolated diagonal block upon which the QR sweep is to be applied. It is assumed without a check that either
ktop
= 1 or
H
(
ktop
,
ktop
-1) = 0 and either
kbot
=
n
or
H
(
kbot
+1,
kbot
) = 0.
nshfts
(global) scalar
nshfts
gives the number of simultaneous shifts.
nshfts
must be positive and even.
sr
,
si
(global) Array of size
nshfts
sr
contains the real parts and
si
contains the imaginary parts of the
nshfts
shifts of origin that define the multi-shift QR sweep.
h
(local) Array of size
lld_h
*
LOC
c
(
n
)
On input
h
contains a Hessenberg matrix
H
.
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
(local) array of size
lld_z
*
LOC
c
(
n
)
If
wantz
is non-zero
, then the QR Sweep orthogonal similarity transformation is accumulated into the matrix
Z
(
iloz
:
ihiz
,
kbot
:
ktop
) from the right. If
wantz
equals zero
, then
z
is unreferenced.
descz
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
Z
.
work
(local workspace) array of size
lwork
lwork
(local)
The size of the
work
array (
lwork
1).
If
lwork
=-1, then a workspace query is assumed.
iwork
(local workspace) array of size
liwork
liwork
(local)
The size of the
iwork
array (
liwork
1).
If
liwork
=-1, then a workspace query is assumed.
Output Parameters
h
A multi-shift QR sweep with shifts
sr
(
j
)+
i
*
si
(
j
) is applied to the isolated diagonal block in rows and columns
ktop
through
kbot
of the matrix
H
.
z
If
wantz
is non-zero
,
z
is updated with transformations applied only to the submatrix
Z
(
iloz
:
ihiz
,
kbot
:
ktop
).
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

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