PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

int CORE_clacpy_pivot | ( | const PLASMA_desc | descA,
|  | PLASMA_enum | direct,
|  | int | k1,
|  | int | k2,
|  | const int * | ipiv,
|  | int * | rankin,
|  | int * | rankout,
|  | PLASMA_Complex32_t * | A,
|  | int | lda,
|  | int | init
| ) |  |

CORE_clacpy_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] | descA | The 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] | k1 | The first element of IPIV for which a row interchange will be done.
  [in] | k2 | The last element of IPIV for which a row interchange will be done.
  [in] | ipiv | The 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] | rankin | On 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] | rankout | On exit, contains the global indices of the first (k2-k1+1) rows.
  [out] | A | An lda-by-descA.n matrix. On exit, A contains the original version of the rows selected by the pivoting process.
  [in] | lda | The leading dimension of the array A. lda >= max(1,(k2-k1+1)).
  [in] | init | True if rankin needs to be initialized. False, if rankin contains already initialized data.

Returns

Return values

  PLASMA_SUCCESS | successful exit
  <0 | if INFO = -k, the k-th argument had an illegal value