Developer Reference

Contents

p?larzt

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

Syntax

void
pslarzt
(
char
*direct
,
char
*storev
,
MKL_INT
*n
,
MKL_INT
*k
,
float
*v
,
MKL_INT
*iv
,
MKL_INT
*jv
,
MKL_INT
*descv
,
float
*tau
,
float
*t
,
float
*work
);
void
pdlarzt
(
char
*direct
,
char
*storev
,
MKL_INT
*n
,
MKL_INT
*k
,
double
*v
,
MKL_INT
*iv
,
MKL_INT
*jv
,
MKL_INT
*descv
,
double
*tau
,
double
*t
,
double
*work
);
void
pclarzt
(
char
*direct
,
char
*storev
,
MKL_INT
*n
,
MKL_INT
*k
,
MKL_Complex8
*v
,
MKL_INT
*iv
,
MKL_INT
*jv
,
MKL_INT
*descv
,
MKL_Complex8
*tau
,
MKL_Complex8
*t
,
MKL_Complex8
*work
);
void
pzlarzt
(
char
*direct
,
char
*storev
,
MKL_INT
*n
,
MKL_INT
*k
,
MKL_Complex16
*v
,
MKL_INT
*iv
,
MKL_INT
*jv
,
MKL_INT
*descv
,
MKL_Complex16
*tau
,
MKL_Complex16
*t
,
MKL_Complex16
*work
);
Include Files
  • mkl_scalapack.h
Description
The
p?larzt
function
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)
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)
Specifies how the vectors which defines the elementary reflectors are stored:
if
storev
=
'C'
: columnwise (not supported);
if
storev
=
'R'
: rowwise.
n
(global)
The order of the block reflector
H
.
n
0
.
k
(global)
The order of the triangular factor
T
(= the number of elementary reflectors).
1≤
k
mb_v
(=
nb_v
)
.
v
Pointer into the local memory to an array of local size
LOCr
(
iv
+
k
-1)
*
LOCc
(
jv
+
n
-1)
.
The distributed matrix
V
contains the Householder vectors.
See
Application Notes
below.
iv
,
jv
(global) The row and column indices in the global matrix
V
indicating the first row and the first column of the matrix sub(
V
), respectively.
descv
(local) array of size
dlen_
. The array descriptor for the distributed matrix
V
.
tau
(local)
Array of size
LOCr
(
iv
+
k
-1)
if
incv
=
m_v
, and
LOCc
(
jv
+
k
-1) otherwise. This array contains the Householder scalars related to the Householder vectors.
tau
is tied to the distributed matrix
V
.
work
(local).
Workspace array of size
(
k*
(
k
-1)/2)
.
Output Parameters
v
t
(local)
Array of size
mb_v
*
mb_v
. It contains the
k
-by-
k
triangular factor of the block reflector associated with
v
.
t
is lower triangular.
Application Notes
The shape of the matrix
V
and the storage of the vectors which define the
H
(
i
)
is best illustrated by the following example with
n
= 5
and
k
= 3
. The elements equal to 1 are not stored; the corresponding array elements are modified but restored on exit. The rest of the array is not used.
Equation
Equation
Equation
Equation

Product and Performance Information

1

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