Developer Reference

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

?ormhr

Multiplies an arbitrary real matrix C by the real orthogonal matrix Q determined by
?gehrd
.

Syntax

call sormhr
(
side
,
trans
,
m
,
n
,
ilo
,
ihi
,
a
,
lda
,
tau
,
c
,
ldc
,
work
,
lwork
,
info
)
call dormhr
(
side
,
trans
,
m
,
n
,
ilo
,
ihi
,
a
,
lda
,
tau
,
c
,
ldc
,
work
,
lwork
,
info
)
call ormhr
(
a
,
tau
,
c
[
,
ilo
]
[
,
ihi
]
[
,
side
]
[
,
trans
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine multiplies a matrix
C
by the orthogonal matrix
Q
that has been determined by a preceding call to
sgehrd
/
dgehrd
. (The routine
?gehrd
reduces a real general matrix
A
to upper Hessenberg form
H
by an orthogonal similarity transformation,
A
=
Q*H*Q
T
, and represents the matrix
Q
as a product of
ihi
-
ilo
elementary reflectors . Here
ilo
and
ihi
are values determined by
sgebal
/
dgebal
when balancing the matrix;if the matrix has not been balanced,
ilo
= 1
and
ihi
=
n
.)
With
?ormhr
, you can form one of the matrix products
Q
*
C
,
Q
T
*
C
,
C
*
Q
, or
C
*
Q
T
, overwriting the result on
C
(which may be any real rectangular matrix).
A common application of
?ormhr
is to transform a matrix
V
of eigenvectors of
H
to the matrix
QV
of eigenvectors of
A
.
Input Parameters
side
CHARACTER*1
.
Must be
'L'
or
'R'
.
If
side
= 'L'
, then the routine forms
Q
*
C
or
Q
T
*
C
.
If
side
= 'R'
, then the routine forms
C
*
Q
or
C
*
Q
T
.
trans