PLASMA  2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
void CORE_slaed2_compressq ( int  n,
int  n1,
const int *  INDX,
const int *  ctot,
const float *  Q,
int  LDQ,
float *  Q2,
int  start,
int  end 
)

CORE_slaed2_compressq - Copy a set of vectors from the Q matrix into the compressed Q2 matrix. Q2 matrix is oragnized as follow:

Q2 = ( q1_1 mix1 0 def1 ) ( 0 mix2 q2 def2 ) and stored in memory by columns in the order (q1_1, mix1, mix2, q2, def), with q1 and q2 the non deflated values, of the two subproblems, (mix1, mix2) the mixed eigenvalues and def the deflated eiegnvalues.

Rk: Note that here we follow the same order that LAPACK slaed2 routine, so the copy from Q to Q2 is done such that Q2 is filled in a continuous manner.

Parameters
[in]nn specifies the dimension of the symmetric tridiagonal matrix
[in]n1n1 specifies the location of the last eigenvalue of the first subproblem min(1, n) <= n1 <= n/2
[in]startstart specifies the first sorted column index to be considered by this kernel.
[in]endend specifies the last column index to be considered by this kernel. start <= end <= n.
[in]INDXThe permutation array used to sort Q into Q2. Array of dimension n, but only INDX[i] for start <= i < end are referenced.
[in]ctotctot[i] is the number of columns of type i, as defined with INDX. 0- number of colums with non-zero in the upper half only 1- number of dense colums 2- number of colums with non-zero in the lower half only 3- number of deflated columns
[in]QOn entry, Q contains the eigenvectors in the uncompressed form. WARNING: Q is the pointer to the full matrix even if only a subset of vectors will be extract.
[in]LDQLDQ specifies the leading dimension of Q
[out]Q2On exit, columns start to end from Q2 stores the eigenvectors in the compressed form and sorted by type. WARNING: Q2 is the pointer to the full matrix even if only columns start to end are touched.