PLASMA  2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
void CORE_cbrdalg1 ( PLASMA_enum  uplo,
int  n,
int  nb,
PLASMA_Complex32_t *  A,
int  lda,
PLASMA_Complex32_t *  VQ,
PLASMA_Complex32_t *  TAUQ,
PLASMA_Complex32_t *  VP,
PLASMA_Complex32_t *  TAUP,
int  Vblksiz,
int  wantz,
int  i,
int  sweepid,
int  m,
int  grsiz,
PLASMA_Complex32_t *  work 
)

CORE_cbrdalg1 is a part of the bidiagonal reduction algorithm (bulgechasing). It correspond to a local driver of the kernels that should be executed on a single core.

Parameters
[in]uplo
  • PlasmaLower:
  • PlasmaUpper:
[in]nThe order of the matrix A. n >= 0.
[in]nbThe size of the Bandwidth of the matrix A, which correspond to the tile size. nb >= 0.
[in,out]APLASMA_Complex32_t array, dimension (lda,n) On entry, the (2nb+1)-by-n lower or upper band general matrix to be reduced to bidiagonal. On exit, if uplo = PlasmaUpper, the diagonal and first superdiagonal of A are overwritten by the corresponding elements of the bidiagonal matrix B. if uplo = PlasmaLower the diagonal and first subdiagonal of A are overwritten by the corresponding elements of the elements of the bidiagonal matrix B.
[in]lda(input) INTEGER The leading dimension of the array A. LDA >= max(1,nb+1).
[out]VQPLASMA_Complex32_t array, dimension (n) if wantz=0 or ldv*Vblksiz*blkcnt if wantz>0. The scalar elementary left reflectors are written in this array.
[out]TAUQPLASMA_Complex32_t array, dimension (n) if wantz=0 or Vblksiz*Vblksiz*blkcnt if wantz>0. The scalar factors of the left elementary reflectors are written in this array.
[in]VPPLASMA_Complex32_t array, dimension (n) if wantz=0 or ldv*Vblksiz*blkcnt if wantz>0. The scalar elementary right reflectors are written in this array.
[in]TAUPPLASMA_Complex32_t array, dimension (n) if wantz=0 or Vblksiz*Vblksiz*blkcnt if wantz>0. The scalar factors of the right elementary reflectors are written in this array.
[in]VblksizLocal parameter to Plasma. It correspond to the local bloccking of the applyQ2 used to apply the orthogonal matrix Q2.
[in]wantzinteger tobe 0 or 1. if wantz=0 the V and TAU are not stored on only they are kept for next step then overwritten.
[in]iInteger that refer to the current sweep. (outer loop).
[in]sweepidInteger that refer to the sweep to chase.(inner loop).
[in]mInteger that refer to a sweep step, to ensure order dependencies.
[in]grsizInteger that refer to the size of a group. group mean the number of kernel that should be executed sequentially on the same core. group size is a trade-off between locality (cache reuse) and parallelism. a small group size increase parallelism while a large group size increase cache reuse.
[in]workWorkspace of size nb. Used by the core_cgbtype[123]cb.