Contents

?lahqr2

Updates the eigenvalues and Schur decomposition.

Syntax

void clahqr2
(
const
MKL_INT*
wantt
,
const
MKL_INT*
wantz
,
const
MKL_INT*
n
,
const
MKL_INT*
ilo
,
const
MKL_INT*
ihi
,
MKL_Complex8*
h
,
const
MKL_INT*
ldh
,
MKL_Complex8*
w
,
const
MKL_INT*
iloz
,
const
MKL_INT*
ihiz
,
MKL_Complex8*
z
,
const
MKL_INT*
ldz
,
MKL_INT*
info
);
void zlahqr2
(
const
MKL_INT*
wantt
,
const
MKL_INT*
wantz
,
const
MKL_INT*
n
,
const
MKL_INT*
ilo
,
const
MKL_INT*
ihi
,
MKL_Complex16*
h
,
const
MKL_INT*
ldh
,
MKL_Complex16*
w
,
const
MKL_INT*
iloz
,
const
MKL_INT*
ihiz
,
MKL_Complex16*
z
,
const
MKL_INT*
ldz
,
MKL_INT*
info
);
Include Files
  • mkl_scalapack.h
Description
?lahqr2
is an auxiliary routine called by
?hseqr
to update the eigenvalues and Schur decomposition already computed by
?hseqr
, by dealing with the Hessenberg submatrix in rows and columns
ilo
to
ihi
. This version of
?lahqr
(not the standard LAPACK version) uses a double-shift algorithm (like LAPACK's
?lahqr
). Unlike the standard LAPACK convention, this does not assume the subdiagonal is real, nor does it work to preserve this quality if given.
Input Parameters
wantt
0
: the full Schur form
T
is required;
= 0
: only eigenvalues are required.
wantz
0
: the matrix of Schur vectors
Z
is required;
= 0
: Schur vectors are not required.
n
The order of the matrix
H
.
n
>= 0.
ilo
,
ihi
It is assumed that the matrix
H
is upper triangular in rows and columns
ihi
+1 :
n
, and that matrix element
H
(
ilo
,
ilo
-1)
= 0
(unless
ilo
= 1).
?lahqr
works primarily with the Hessenberg submatrix in rows and columns
ilo
to
ihi
, but applies transformations to all of
h
if
wantt
is
nonzero
.
1 <=
ilo
<= max(1,
ihi
);
ihi
<=
n
.
h
Array, size
ldh
*
n
.
On entry, the upper Hessenberg matrix
H
.
ldh
The leading dimension of the array
h
.
ldh
>= max(1,
n
).
iloz
,
ihiz
Specify the rows of
Z
to which transformations must be applied if
wantz
0
.
1 <=
iloz
<=
ilo
;
ihi
<=
ihiz
<=
n
.
z
Array, size
ldz
*
n
.
If
wantz
0
, on entry
z
must contain the current matrix
Z
of transformations. If
wantz
= 0
,
z
is not referenced.
ldz
The leading dimension of the array
z
.
ldz
>= max(1,
n
).
Output Parameters
h
On exit, if
wantt
0
,
h
is upper triangular in rows and columns
ilo
:
ihi
. If
wantt
= 0
, the contents of
h
are unspecified on exit.
w
Array, size (
n
)
The computed eigenvalues
ilo
to
ihi
are stored in the corresponding elements of
w
. If
wantt
0
, the eigenvalues are stored in the same order as on the diagonal of the Schur form returned in
h
, with
w
[
i
] =
H
(
i
,
i
)
.
z
If
wantz
0
, on exit
z
has been updated; transformations are applied only to the submatrix
Z
(
iloz
:
ihiz
,
ilo
:
ihi
). If
wantz
= 0
,
z
is not referenced.
info
= 0: successful exit
> 0: if
info
=
i
,
?lahqr
failed to compute all the eigenvalues
ilo
to
ihi
in a total of 30*(
ihi
-
ilo
+1) iterations; elements
w
[
i
:
ihi
- 1]
contain those eigenvalues which have been successfully computed.

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