p?orglq
p?orglq
Generates the real orthogonal matrix
Q
of the LQ
factorization formed by p?gelqf
.Syntax
void
psorglq
(
MKL_INT
*m
,
MKL_INT
*n
,
MKL_INT
*k
,
float
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*tau
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pdorglq
(
MKL_INT
*m
,
MKL_INT
*n
,
MKL_INT
*k
,
double
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*tau
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
Include Files
- mkl_scalapack.h
Description
The
p?orglq
function
generates the whole or part of m
-by-n
real distributed matrix Q
denoting A
(ia
:ia
+m
-1,ja
:ja
+n
-1) with orthonormal rows, which is defined as the first m
rows of a product of k
elementary reflectors of order n
Q
= H
(k
)*...* H
(2)* H
(1) as returned by
p?gelqf
. Input Parameters
- m
- (global) The number of rows in the matrix sub(Q);(.m≥0)
- n
- (global) The number of columns in the matrix sub(Q)(.n≥m≥0)
- k
- (global) The number of elementary reflectors whose product defines the matrixQ(.m≥k≥0)
- a
- (local)Pointer into the local memory to an array of local size. On entry, thelld_a*LOCc(ja+n-1)i-th rowof the matrix stored inmust contain the vector that defines the elementary reflectoraH(i),ia≤i≤ia+k-1, as returned byp?gelqfin thekrows of its distributed matrix argumentA(ia:ia+k-1,ja:*).
- ia,ja
- (global) The row and column indices in the global matrixAindicating the first row and the first column of the submatrixA(ia:ia+m-1,ja:ja+n-1), respectively.
- desca
- (global and local) array of sizedlen_. The array descriptor for the distributed matrixA.
- work
- (local)Workspace array of size oflwork.
- lwork
- (local or global) size ofwork, must be at least, wherelwork≥mb_a*(mpa0+nqa0+mb_a),iroffa=mod(ia-1,mb_a),icoffa=mod(ja-1,nb_a),iarow=indxg2p(ia,mb_a,MYROW,rsrc_a,NPROW),iacol=indxg2p(ja,nb_a,MYCOL,csrc_a,NPCOL),mpa0 =numroc(m+iroffa,mb_a,MYROW,iarow,NPROW)nqa0 =numroc(n+icoffa,nb_a,MYCOL,iacol,NPCOL)mod(is the integer remainder ofx,y).x/yindxg2pandnumrocare ScaLAPACK tool functions;MYROW,MYCOL,NPROWandNPCOLcan be determined by calling thefunctionblacs_gridinfo.If, thenlwork= -1lworkis global input and a workspace query is assumed; thefunctiononly calculates the minimum and optimal size for all work arrays. Each of these values is returned in the first entry of the corresponding work array, and no error message is issued by pxerbla.
Output Parameters
- a
- Contains the local pieces of them-by-ndistributed matrixQto be factored.
- tau
- (local)Array of size.LOCr(ia+k-1)Contains the scalar factorstau[of elementary reflectorsj]H(.j+1), 0 ≤j<LOCr(ia+k-1)tauis tied to the distributed matrixA.
- work[0]
- On exit,contains the minimum value ofwork[0]lworkrequired for optimum performance.
- info
- (global)= 0: the execution is successful.< 0: if thei-th argument is an array and thej-th entry, indexedhad an illegal value, thenj- 1,info= -(i*100+j); if thei-th argument is a scalar and had an illegal value, theninfo=-i.