Developer Reference

Contents

?gehrd

Reduces a general matrix to upper Hessenberg form.

Syntax

lapack_int
LAPACKE_sgehrd
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
float
*
a
,
lapack_int
lda
,
float
*
tau
);
lapack_int
LAPACKE_dgehrd
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
double
*
a
,
lapack_int
lda
,
double
*
tau
);
lapack_int
LAPACKE_cgehrd
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
lapack_complex_float
*
a
,
lapack_int
lda
,
lapack_complex_float
*
tau
);
lapack_int
LAPACKE_zgehrd
(
int
matrix_layout
,
lapack_int
n
,
lapack_int
ilo
,
lapack_int
ihi
,
lapack_complex_double
*
a
,
lapack_int
lda
,
lapack_complex_double
*
tau
);
Include Files
  • mkl.h
Description
The routine reduces a general matrix
A
to upper Hessenberg form
H
by an orthogonal or unitary similarity transformation
A
=
Q*H*Q
H
. Here
H
has real subdiagonal elements.
The routine does not form the matrix
Q
explicitly. Instead,
Q
is represented as a product of elementary reflectors. Routines are provided to work with
Q
in this representation.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
n
The order of the matrix
A
(
n
0
).
ilo
,
ihi
If
A
is an output by
?gebal
, then
ilo
and
ihi
must contain the values returned by that routine. Otherwise
ilo
= 1
and
ihi
=
n
. (If
n
>
0
, then
1
ilo
ihi
n
; if
n
= 0
,
ilo
= 1
and
ihi
= 0
.)
a
Arrays:
a
(size max(1,
lda
*
n
))
contains the matrix
A
.
lda
The leading dimension of
a
; at least max(1,
n
).
Output Parameters
a
The elements on and above the subdiagonal contain the upper Hessenberg matrix
H
. The subdiagonal elements of
H
are real. The elements below the subdiagonal, with the array
tau
, represent the orthogonal matrix
Q
as a product of
n
elementary reflectors.
tau
Array, size at least max (1,
n
-1).
Contains scalars that define elementary reflectors for the matrix
Q
.
Return Values
This function returns a value
info
.
If
info
=0
, the execution is successful.
If
info
=
-i
, the
i
-th parameter had an illegal value.
Application Notes
The computed Hessenberg matrix
H
is exactly similar to a nearby matrix
A
+
E
, where
||
E
||
2
<
c
(
n
)
ε
||
A
||
2
,
c
(
n
)
is a modestly increasing function of
n
, and
ε
is the machine precision.
The approximate number of floating-point operations for real flavors is
(2/3)*(
ihi
-
ilo
)
2
(2
ihi
+ 2
ilo
+ 3
n
)
; for complex flavors it is 4 times greater.

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