p?latrz
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 to upper triangular form by means of orthogonal/unitary transformations.
p?latrz
function
reduces the m
-by-n
(
real/complex upper trapezoidal matrix m
≤
n
)sub(
A
) = [A
(ia
:ia
+m
-1, ja
:ja
+m
-1)A
(ia
:ia
+m
-1, ja
+n-l
:ja
+n
-1)]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. On entry, the local pieces of thelld_a*LOCc(ja+n-1)m-by-ndistributed matrix sub(A), which is to be factored.
- ia
- (global)The row index in the global matrixAindicating the first row of sub(A).
- ja
- (global)The column index in the global matrixAindicating the first column of sub(A).
- desca
- (global and local) array of sizedlen_.The array descriptor for the distributed matrixA.
- work
- (local)Workspace array of sizelwork., wherelwork≥nq0 + max(1,mp0)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),mp0 =numroc(m+iroff,mb_a,myrow,iarow,nprow),nq0 =numroc(n+icoff,nb_a,mycol,iacol,npcol)numroc,indxg2p, andnumrocare ScaLAPACK tool functions;myrow,mycol,nprow, andnpcolcan be determined by calling thefunctionblacs_gridinfo.
Output Parameters
- a
- On exit, the leadingm-by-mupper triangular part of sub(A) contains the upper triangular matrixR, and elementston-l+1nof the firstmrows of sub(A), with the arraytau, represent the orthogonal/unitary matrixZas a product ofmelementary reflectors.
- tau
- (local)Array of size. This array contains the scalar factors of the elementary reflectors.LOCr(ja+m-1)tauis tied to the distributed matrixA.
Application Notes
The factorization is obtained by Householder's method.
The , which is used (or, in case of complex
k
-th transformation matrix, Z
(k
)functions
, whose conjugate transpose is used) to introduce zeros into the (
-th row of sub(m
- k
+ 1)A
), is given in the form
where

tau
is a scalar and z
( k
)n-m
)-element vector. tau
and z
( k
)k
-th row of sub(A
). The scalar tau
is returned in the k
-th element of tau
, indexed
and the vector k
-1, u
( k
)k
-th row of sub(A
), such that the elements of z(
k
)A
(
k
, m
+ 1 ), ..., A
(
. The elements of k
, n
)R
are returned in the upper triangular part of sub(A
).Z
is given by Z = Z(1)Z(2)...Z(m).