PLASMA  2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
int CORE_zunmlq ( PLASMA_enum  side,
PLASMA_enum  trans,
int  M,
int  N,
int  K,
int  IB,
const PLASMA_Complex64_t *  A,
int  LDA,
const PLASMA_Complex64_t *  T,
int  LDT,
PLASMA_Complex64_t *  C,
int  LDC,
PLASMA_Complex64_t *  WORK,
int  LDWORK 
)

CORE_zunmlq overwrites the general complex M-by-N tile C with

              SIDE = 'L'     SIDE = 'R'

TRANS = 'N': Q * C C * Q TRANS = 'C': Q**H * C C * Q**H

where Q is a complex unitary matrix defined as the product of k elementary reflectors

Q = H(k) . . . H(2) H(1)

as returned by CORE_zgelqt. Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'.

Parameters
[in]side
  • PlasmaLeft : apply Q or Q**H from the Left;
  • PlasmaRight : apply Q or Q**H from the Right.
[in]trans
  • PlasmaNoTrans : No transpose, apply Q;
  • PlasmaConjTrans : Transpose, apply Q**H.
[in]MThe number of rows of the tile C. M >= 0.
[in]NThe number of columns of the tile C. N >= 0.
[in]KThe number of elementary reflectors whose product defines the matrix Q. If SIDE = PlasmaLeft, M >= K >= 0; if SIDE = PlasmaRight, N >= K >= 0.
[in]IBThe inner-blocking size. IB >= 0.
[in]ADimension: (LDA,M) if SIDE = PlasmaLeft, (LDA,N) if SIDE = PlasmaRight, The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CORE_zgelqt in the first k rows of its array argument A.
[in]LDAThe leading dimension of the array A. LDA >= max(1,K).
[in]TThe IB-by-K triangular factor T of the block reflector. T is upper triangular by block (economic storage); The rest of the array is not referenced.
[in]LDTThe leading dimension of the array T. LDT >= IB.
[in,out]COn entry, the M-by-N tile C. On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
[in]LDCThe leading dimension of the array C. LDC >= max(1,M).
[in,out]WORKOn exit, if INFO = 0, WORK(1) returns the optimal LDWORK.
[in]LDWORKThe dimension of the array WORK. If SIDE = PlasmaLeft, LDWORK >= max(1,N); if SIDE = PlasmaRight, LDWORK >= max(1,M).
Returns
Return values
PLASMA_SUCCESSsuccessful exit
<0if -i, the i-th argument had an illegal value