PLASMA
2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
void CORE_dlaed2_computeK | ( | int * | Kptr, |
int | n, | ||
int | n1, | ||
double * | betaptr, | ||
double * | D, | ||
double * | Q, | ||
int | LDQ, | ||
double * | Z, | ||
double * | DLAMBDA, | ||
double * | W, | ||
int * | INDX, | ||
int * | INDXC, | ||
int * | INDXP, | ||
int * | INDXQ, | ||
int * | COLTYP | ||
) |
CORE_dlaed2_computeK - Computes the number of deflated eigenvalues of a symmetric tridiagonal matrix. A eigenvalue is deflated if it's close enough to another eigenvalue or if the vector Z contains a tiny entry. This operation is useful when two subproblems, which were previously solved, are merge into a larger problem.
[out] | Kptr | On exit, Kptr stores the number of non-deflated eigenvalues |
[in] | n | n specifies the dimension of the symmetric tridiagonal matrix |
[in] | n1 | n1 specifies the location of the last eigenvalue of the first subproblem min(1, n) <= n1 <= n/2 |
[in,out] | betaptr | betaptr[0] specifies the rank-1 approximation that was used for splitting the problem into two subproblems. On exit, it contains the updated beta for LAED3. |
[in,out] | D | On entry, D contains the eigenvalues of the two submatrices to be merged. On exit, D contains the updated eigenvalues sorted into increasing order. |
[in,out] | Q | On entry, Q contains the eigenvectors of each subproblem. On exit, Q contains the updated eigenvectors, which can be modified through givens rotation (with close eigenvalues). |
[in] | LDQ | LDQ specifies the leading direction of Q |
[out] | Z | Z will contain the updating vectors, composed of the last row of the first subproblem and the first row of the second subproblem. |
[out] | DLAMBDA | DLAMBDA will contain a copy of the first K eigenvalues and then an update of those eigenvalues for usage in LAED3. In LAPACK, the call of dlamc3 is done at the beginning of LAED3. |
[out] | W | W will contain the fisrt K values of the final Z vector, for future use in LAED3. |
[out] | INDX | The permutation used to sort the contents of DLAMBDA into ascending order |
[out] | INDXC | The permutation used to arrange the columns of the deflated Q matrix 1- non-zero elements only at and above n1 2- non-zero elements only below n1 3- dense |
[out] | INDXP | INDXP is the permutation used to place deflated eigenvalues at the end of the array INDXP(0:K-1) points to the non-deflated D values INDXP(K-1:N-1) points to the deflated D values |
[in,out] | INDXQ | The permutation which separetely sorts each subprobem in D into ascending order. In the second half of the permutation, elements will have n1 added to their value. |
[out] | COLTYP | COLTYP indicate the type of the Q matrix columns during the process. 1- non-zero in the upper half only 2- dense 3- non-zero in the lower half only 4- deflated |