PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

int CORE_ctsmlq_hetra1 | ( | PLASMA_enum | side,
|  | PLASMA_enum | trans,
|  | int | m1,
|  | int | n1,
|  | int | m2,
|  | int | n2,
|  | int | k,
|  | int | ib,
|  | PLASMA_Complex32_t * | A1,
|  | int | lda1,
|  | PLASMA_Complex32_t * | A2,
|  | int | lda2,
|  | const PLASMA_Complex32_t * | V,
|  | int | ldv,
|  | const PLASMA_Complex32_t * | T,
|  | int | ldt,
|  | PLASMA_Complex32_t * | WORK,
|  | int | ldwork
| ) |  |

CORE_ctsmlq_hetra1: see CORE_ctsmlq

This kernel applies a Right transformation on | A1' A2 | and does not handle the transpose of A1. Needs therefore to make the explicit transpose of A1 before and after the application of the block of reflectors Can be further optimized by changing accordingly the underneath kernel ztsrfb!

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 : ConjTranspose, apply Q**H.
  [in] | m1 | The number of rows of the tile A1. m1 >= 0.
  [in] | n1 | The number of columns of the tile A1. n1 >= 0.
  [in] | m2 | The number of rows of the tile A2. m2 >= 0. m2 = m1 if side == PlasmaRight.
  [in] | n2 | The number of columns of the tile A2. n2 >= 0. n2 = n1 if side == PlasmaLeft.
  [in] | k | The number of elementary reflectors whose product defines the matrix Q.
  [in] | ib | The inner-blocking size. ib >= 0.
  [in,out] | A1 | On entry, the m1-by-n1 tile A1. On exit, A1 is overwritten by the application of Q.
  [in] | lda1 | The leading dimension of the array A1. lda1 >= max(1,m1).
  [in,out] | A2 | On entry, the m2-by-n2 tile A2. On exit, A2 is overwritten by the application of Q.
  [in] | lda2 | The leading dimension of the tile A2. lda2 >= max(1,m2).
  [in] | V | The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CORE_CTSLQT in the first k rows of its array argument V. !
  [in] | ldv | The leading dimension of the array V. ldv >= max(1,K).
  [in] | T | The IB-by-n1 triangular factor T of the block reflector. T is upper triangular by block (economic storage); The rest of the array is not referenced.
  [in] | ldt | The leading dimension of the array T. ldt >= IB.
  [out] | WORK | Workspace array of size LDWORK-by-m1 if side == PlasmaLeft LDWORK-by-IB if side == PlasmaRight
  [in] | ldwork | The leading dimension of the array WORK. LDWORK >= max(1,IB) if side == PlasmaLeft LDWORK >= max(1,n1) if side == PlasmaRight

Returns

Return values

  PLASMA_SUCCESS | successful exit
  <0 | if -i, the i-th argument had an illegal value