PLASMA  2.8.0
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
int CORE_slacpy_pivot ( const PLASMA_desc  descA,
PLASMA_enum  direct,
int  k1,
int  k2,
const int *  ipiv,
int *  rankin,
int *  rankout,
float *  A,
int  lda,
int  init 
)

CORE_slacpy_pivot extracts the original version of the rows selected by the ipiv array and copies them into a new buffer.

This kernel is used by tournament pivoting algorithms, to extract the selected rows from the original matrix that will make it to the next level of the tournament.

Parameters
[in]descAThe descriptor of the matrix A in which the kernel will extract the original rows.
[in]direct
  • PlasmaRowwise: The extracted rows are stored in column major layout.
  • PlasmaColumnwise: The extracted rows are store in row major layout.
[in]k1The first element of IPIV for which a row interchange will be done.
[in]k2The last element of IPIV for which a row interchange will be done.
[in]ipivThe pivot indices; Only the element in position k1 to k2 are accessed. The pivots should be included in the interval 1 to A.m
[in,out]rankinOn entry, the global indices relative to the full matrix A factorized, in the local sub-matrix. If init == 1, rankin is initialized to A.i, .. A.i+descA.m On exit, rows are permutted according to ipiv.
[out]rankoutOn exit, contains the global indices of the first (k2-k1+1) rows.
[out]AAn lda-by-descA.n matrix. On exit, A contains the original version of the rows selected by the pivoting process.
[in]ldaThe leading dimension of the array A. lda >= max(1,(k2-k1+1)).
[in]initTrue if rankin needs to be initialized. False, if rankin contains already initialized data.
Returns
Return values
PLASMA_SUCCESSsuccessful exit
<0if INFO = -k, the k-th argument had an illegal value