PLASMA  2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
int CORE_cherfb ( PLASMA_enum  uplo,
int  n,
int  k,
int  ib,
int  nb,
const PLASMA_Complex32_t *  A,
int  lda,
const PLASMA_Complex32_t *  T,
int  ldt,
PLASMA_Complex32_t *  C,
int  ldc,
PLASMA_Complex32_t *  WORK,
int  ldwork 
)

CORE_cherfb overwrites the symmetric complex N-by-N tile C with

Q**T*C*Q

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_cgeqrt. Only PlasmaLower supported!

Parameters
[in]uplo
  • PlasmaLower : the upper part of the symmetric matrix C is not referenced.
  • PlasmaUpper : the lower part of the symmetric matrix C is not referenced (not supported).
[in]nThe number of rows/columns of the tile C. N >= 0.
[in]kThe number of elementary reflectors whose product defines the matrix Q. K >= 0.
[in]ibThe inner-blocking size. IB >= 0.
[in]nbThe blocking size. NB >= 0.
[in]AThe i-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CORE_cgeqrt in the first k columns of its array argument A.
[in]ldaThe leading dimension of the array A. 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 symmetric N-by-N tile C. On exit, C is overwritten by Q**T*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. LDWORK >= max(1,N);
Returns
Return values
PLASMA_SUCCESSsuccessful exit
<0if -i, the i-th argument had an illegal value