Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?laqr6

Performs a single small-bulge multi-shift QR sweep collecting the transformations.

Syntax

call slaqr6
(
job
,
wantt
,
wantz
,
kacc22
,
n
,
ktop
,
kbot
,
nshfts
,
sr
,
si
,
h
,
ldh
,
iloz
,
ihiz
,
z
,
ldz
,
v
,
ldv
,
u
,
ldu
,
nv
,
wv
,
ldwv
,
nh
,
wh
,
ldwh
)
call dlaqr6
(
job
,
wantt
,
wantz
,
kacc22
,
n
,
ktop
,
kbot
,
nshfts
,
sr
,
si
,
h
,
ldh
,
iloz
,
ihiz
,
z
,
ldz
,
v
,
ldv
,
u
,
ldu
,
nv
,
wv
,
ldwv
,
nh
,
wh
,
ldwh
)
Description
This auxiliary
subroutine called by
p?laqr5
performs a single small-bulge multi-shift QR sweep, moving the chain of bulges from top to bottom in the submatrix
H
(
ktop
:
kbot
,
ktop
:
kbot
), collecting the transformations in the matrix
V
or
accumulating the transformations in the matrix
Z
(see below).
This is a modified version of
?laqr5
from LAPACK 3.1.
Input Parameters
job
CHARACTER
scalar
Set the kind of job to do in
?laqr6
, as follows:
job
= 'I': Introduce and chase bulges in submatrix
job
= 'C': Chase bulges from top to bottom of submatrix
job
= 'O': Chase bulges off submatrix
wantt
LOGICAL
scalar
wantt
= .TRUE.
if the quasi-triangular Schur factor is being computed.
wantt
is set to
.FALSE.
otherwise.
wantz
LOGICAL
scalar
wantz
= .TRUE.
if the orthogonal Schur factor is being computed.
wantz
is set to
.FALSE.
otherwise.
kacc22
INTEGER
with value 0, 1, or 2.
Specifies the computation mode of far-from-diagonal orthogonal updates.
= 0:
?laqr6
does not accumulate reflections and does not use matrix-matrix multiply to update far-from-diagonal matrix entries.
= 1:
?laqr6
accumulates reflections and uses matrix-matrix multiply to update the far-from-diagonal matrix entries.
= 2:
?laqr6
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
INTEGER
scalar
n
is the order of the Hessenberg matrix
H
upon which this
subroutine
operates.
ktop
,
kbot
INTEGER
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
INTEGER
scalar
nshfts
gives the number of simultaneous shifts.
nshfts
must be positive and even.
sr
,
si
REAL
for
slaqr6
DOUBLE PRECISION
for
dlaqr6
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
REAL
for
slaqr6
DOUBLE PRECISION
for
dlaqr6
Array of size
(
ldh
,