PLASMA
2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
int CORE_stsmlq_sytra1 | ( | PLASMA_enum | side, |
PLASMA_enum | trans, | ||
int | m1, | ||
int | n1, | ||
int | m2, | ||
int | n2, | ||
int | k, | ||
int | ib, | ||
float * | A1, | ||
int | lda1, | ||
float * | A2, | ||
int | lda2, | ||
const float * | V, | ||
int | ldv, | ||
const float * | T, | ||
int | ldt, | ||
float * | WORK, | ||
int | ldwork | ||
) |
CORE_stsmlq_sytra1: see CORE_stsmlq
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!
[in] | side |
|
[in] | trans |
|
[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_STSLQT 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 |
PLASMA_SUCCESS | successful exit |
<0 | if -i, the i-th argument had an illegal value |