Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

p?latrz

Reduces an upper trapezoidal matrix to upper triangular form by means of orthogonal/unitary transformations.

Syntax

void
pslatrz
(
MKL_INT
*m
,
MKL_INT
*n
,
MKL_INT
*l
,
float
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*tau
,
float
*work
);
void
pdlatrz
(
MKL_INT
*m
,
MKL_INT
*n
,
MKL_INT
*l
,
double
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*tau
,
double
*work
);
void
pclatrz
(
MKL_INT
*m
,
MKL_INT
*n
,
MKL_INT
*l
,
MKL_Complex8
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex8
*tau
,
MKL_Complex8
*work
);
void
pzlatrz
(
MKL_INT
*m
,
MKL_INT
*n
,
MKL_INT
*l
,
MKL_Complex16
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex16
*tau
,
MKL_Complex16
*work
);
Include Files
  • mkl_scalapack.h
Description
The
p?latrz
function
reduces the
m
-by-
n
(
m
n
)
real/complex upper trapezoidal matrix
sub(
A
) = [
A
(
ia
:
ia
+
m
-1,
ja
:
ja
+
m
-1)
A
(
ia
:
ia
+
m
-1,
ja
+
n-l
:
ja
+
n
-1)]
to upper triangular form by means of orthogonal/unitary transformations.
The upper trapezoidal matrix sub(
A
) is factored as
sub(
A
) = (
R
0 )*
Z
,
where
Z
is an
n
-by-
n
orthogonal/unitary matrix and
R
is an
m
-by
-
m
upper triangular matrix.
Input Parameters
m
(global)
The number of rows in the distributed matrix sub(
A
).
m
0
.
n
(global)
The number of columns in the distributed matrix sub(
A
).
n
0
.
l
(global)
The number of columns of the distributed matrix sub(
A
) containing the meaningful part of the Householder reflectors.
l
>
0
.
a
(local)
Pointer into the local memory to an array of size
lld_a
*
LOCc
(
ja
+
n
-1)
. On entry, the local pieces of the
m
-by-
n
distributed matrix sub(
A
), which is to be factored.
ia
(global)
The row index in the global matrix
A
indicating the first row of sub(
A
).
ja
(global)
The column index in the global matrix
A
indicating the first column of sub(
A
).
desca
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
A
.
work
(local)
Workspace array of size
lwork
.
lwork
nq
0 + max(1,
mp
0)
, where
iroff
= mod(
ia
-1,
mb_a
),
icoff
= mod(
ja
-1,
nb_a
)
,
iarow
=
indxg2p
(
ia
,
mb_a
,
myrow
,
rsrc
_a,
nprow
)
,
iacol
=
indxg2p
(
ja
,
nb_a
,
mycol
,
csrc_a
,
npcol
)
,
mp
0 =
numroc
(
m
+
iroff
,
mb_a
,
myrow
,
iarow
,
nprow
)
,
nq
0 =
numroc
(
n
+
icoff
,
nb_a
,
mycol
,
iacol
,
npcol
)
,
numroc
,
indxg2p
, and
numroc
are ScaLAPACK tool functions;
myrow
,
mycol
,
nprow
, and
npcol
can be determined by calling the
function
blacs_gridinfo
.
Output Parameters
a
On exit, the leading
m
-by-
m
upper triangular part of sub(
A
) contains the upper triangular matrix
R
, and elements
n
-
l
+1
to
n
of the first
m
rows of sub(
A
), with the array
tau
, represent the orthogonal/unitary matrix
Z
as a product of
m
elementary reflectors.
tau
(local)
Array of size
LOCr
(
ja
+
m
-1)
. This array contains the scalar factors of the elementary reflectors.
tau
is tied to the distributed matrix
A
.
Application Notes
The factorization is obtained by Householder's method.
The
k
-th transformation matrix,
Z
(
k
)
, which is used (or, in case of complex
functions
, whose conjugate transpose is used) to introduce zeros into the
(
m
-
k
+ 1)
-th row of sub(
A
), is given in the form
Equation
where
Equation
tau
is a scalar and
z
(
k
)
is an (
n-m
)-element vector.
tau
and
z
(
k
)
are chosen to annihilate the elements of the
k
-th row of sub(
A
). The scalar
tau
is returned in the
k
-th element of
tau
, indexed
k
-1,
and the vector
u
(
k
)
in the
k
-th row of sub(
A
), such that the elements of
z(
k
)
are in
A
(
k
,
m
+ 1 ), ...,
A
(
k
,
n
)
. The elements of
R
are returned in the upper triangular part of sub(
A
).
Z
is given by
Z = Z(1)Z(2)...Z(m).

Product and Performance Information

1

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