Developer Reference

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

p?larzt

Forms the triangular factor T of a block reflector H=I-V*T*V
H
as returned by
p?tzrzf
.

Syntax

call pslarzt
(
direct
,
storev
,
n
,
k
,
v
,
iv
,
jv
,
descv
,
tau
,
t
,
work
)
call pdlarzt
(
direct
,
storev
,
n
,
k
,
v
,
iv
,
jv
,
descv
,
tau
,
t
,
work
)
call pclarzt
(
direct
,
storev
,
n
,
k
,
v
,
iv
,
jv
,
descv
,
tau
,
t
,
work
)
call pzlarzt
(
direct
,
storev
,
n
,
k
,
v
,
iv
,
jv
,
descv
,
tau
,
t
,
work
)
Description
The
p?larzt
routine
forms the triangular factor
T
of a real/complex block reflector
H
of order greater than
n
, which is defined as a product of
k
elementary reflectors as returned by
p?tzrzf
.
If
direct
=
'F'
,
H
=
H
(1)*
H
(2)*...*
H
(
k
)
, and
T
is upper triangular;
If
direct
=
'B'
,
H
=
H
(
k
)*...*
H
(2)*
H
(1)
, and
T
is lower triangular.
If
storev
=
'C'
, the vector which defines the elementary reflector
H
(
i
),
is stored in the
i
-th column of the array
v
, and
H
=
i
-
v
*
t
*
v'.
If
storev
=
'R'
, the vector, which defines the elementary reflector
H
(
i
),
is stored in the
i
-th row of the array
v
, and
H
=
i
-
v
'*
t
*
v
Currently, only
storev
=
'R'
and
direct
=
'B'
are supported.
Input Parameters
direct
(global)
CHARACTER
.
Specifies the order in which the elementary reflectors are multiplied to form the block reflector:
if
direct
=
'F'
:
H
=
H
(1)*
H
(2)*...*
H
(
k
)
(Forward, not supported)
if
direct
=
'B'
:
H
=
H
(
k
)*...*
H
(2)*
H
(1)
(Backward).
storev
(global)
CHARACTER
.
Specifies how the vectors which defines the elementary reflectors are stored:
if
storev
=
'C'
: columnwise (not supported);
if
storev
=
'R'
: rowwise.
n
(global)
INTEGER
.
The order of the block reflector
H
.
n
0
.
k
(global)
INTEGER
.
The order of the triangular factor
T
(= the number of elementary reflectors).
1≤
k
mb_v
(=
nb_v
)
.
v
REAL
for
pslarzt
DOUBLE PRECISION
for
pdlarzt
COMPLEX
for
pclarzt