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

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

              SIDE = 'L'     SIDE = 'R'

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

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

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

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

Parameters
[in]side
  • PlasmaLeft : apply Q or Q**T from the Left;
  • PlasmaRight : apply Q or Q**T from the Right.
[in]trans
  • PlasmaNoTrans : No transpose, apply Q;
  • PlasmaTrans : Transpose, apply Q**T.
[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,K) The i-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CORE_dgeqrt in the first k columns of its array argument A.
[in]LDAThe leading dimension of the array A. If SIDE = PlasmaLeft, LDA >= max(1,M); if SIDE = PlasmaRight, LDA >= max(1,N).
[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