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

- Main Page
- Modules
- Data Types List

int CORE_dtsmqr_corner | ( | int | m1,
|  | int | n1,
|  | int | m2,
|  | int | n2,
|  | int | m3,
|  | int | n3,
|  | int | k,
|  | int | ib,
|  | int | nb,
|  | double * | A1,
|  | int | lda1,
|  | double * | A2,
|  | int | lda2,
|  | double * | A3,
|  | int | lda3,
|  | const double * | V,
|  | int | ldv,
|  | const double * | T,
|  | int | ldt,
|  | double * | WORK,
|  | int | ldwork
| ) |  |

CORE_dtsmqr_corner: see CORE_dtsmqr

This kernel applies left and right transformations as depicted below: |I -VT'V'| * | A1 A2'| * |I - VTV'| | A2 A3 | where A1 and A3 are symmetric matrices. Only the lower part is referenced. This is an adhoc implementation, can be further optimized...

Parameters

  [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.
  [in] | n2 | The number of columns of the tile A2. n2 >= 0.
  [in] | m3 | The number of rows of the tile A3. m3 >= 0.
  [in] | n3 | The number of columns of the tile A3. n3 >= 0.
  [in] | k | The number of elementary reflectors whose product defines the matrix Q.
  [in] | ib | The inner-blocking size. IB >= 0.
  [in] | nb | The blocking size. NB >= 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,out] | A3 | On entry, the m3-by-n3 tile A3.
  [in] | lda3 | The leading dimension of the tile A3. lda3 >= max(1,m3).
  [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_DTSQRT in the first k columns 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-N1 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,M1) if side == PlasmaRight

Returns

Return values

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