Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
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

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.