PLASMA
2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
void CORE_sgbtype2cb | ( | PLASMA_enum | uplo, |
int | N, | ||
int | NB, | ||
float * | A, | ||
int | LDA, | ||
float * | VQ, | ||
float * | TAUQ, | ||
float * | VP, | ||
float * | TAUP, | ||
int | st, | ||
int | ed, | ||
int | sweep, | ||
int | Vblksiz, | ||
int | WANTZ, | ||
float * | WORK | ||
) |
CORE_sgbtype2cb is a kernel that will operate on a region (triangle) of data bounded by st and ed. This kernel apply the right update remaining from the type1 and this later will create a bulge so it eliminate the first column of the created bulge and do the corresponding Left update.
All detail are available on technical report or SC11 paper. Azzam Haidar, Hatem Ltaief, and Jack Dongarra. 2011. Parallel reduction to condensed forms for symmetric eigenvalue problems using aggregated fine-grained and memory-aware kernels. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC '11). ACM, New York, NY, USA, , Article 8 , 11 pages. http://doi.acm.org/10.1145/2063384.2063394
[in] | uplo | = PlasmaUpper: Upper triangle of A is stored; = PlasmaLower: Lower triangle of A is stored. |
[in] | N | The order of the matrix A. |
[in] | NB | The size of the band. |
[in,out] | A | A pointer to the matrix A of size (3*NB+1)-by-N. |
[in] | LDA | The leading dimension of the matrix A. LDA >= max(1,3*NB+1) |
[in,out] | VP | TODO: Check and fix doc float array, dimension N if eigenvalue only requested or (LDV*blkcnt*Vblksiz) if Eigenvectors requested The Householder reflectors of the previous type 1 are used here to continue update then new one are generated to eliminate the bulge and stored in this array. |
[in,out] | TAUP | TODO: Check and fix doc float array, dimension (N). The scalar factors of the Householder reflectors of the previous type 1 are used here to continue update then new one are generated to eliminate the bulge and stored in this array. |
[in,out] | VQ | TODO: Check and fix doc float array, dimension N if eigenvalue only requested or (LDV*blkcnt*Vblksiz) if Eigenvectors requested The Householder reflectors of the previous type 1 are used here to continue update then new one are generated to eliminate the bulge and stored in this array. |
[in,out] | TAUQ | TODO: Check and fix doc float array, dimension (N). The scalar factors of the Householder reflectors of the previous type 1 are used here to continue update then new one are generated to eliminate the bulge and stored in this array. |
[in] | st | A pointer to the start index where this kernel will operate. |
[in] | ed | A pointer to the end index where this kernel will operate. |
[in] | sweep | The sweep number that is eliminated. it serve to calculate the pointer to the position where to store the Vs and Ts. |
[in] | Vblksiz | constant which correspond to the blocking used when applying the Vs. it serve to calculate the pointer to the position where to store the Vs and Ts. |
[in] | WANTZ | constant which indicate if Eigenvalue are requested or both Eigenvalue/Eigenvectors. |
[in] | WORK | Workspace of size nb. |
PLASMA_SUCCESS | successful exit |
<0 | if -i, the i-th argument had an illegal value |