Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/22/2024
Public
Document Table of Contents

p?lasrt

Sorts the numbers in an array and the corresponding vectors in increasing order.

Syntax

void pslasrt (const char* id, const MKL_INT* n, float* d, const float* q, const MKL_INT* iq, const MKL_INT* jq, const MKL_INT* descq, float* work, const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info);

void pdlasrt (const char* id, const MKL_INT* n, double* d, const double* q, const MKL_INT* iq, const MKL_INT* jq, const MKL_INT* descq, double* work, const MKL_INT* lwork, MKL_INT* iwork, const MKL_INT* liwork, MKL_INT* info);

Include Files

  • mkl_scalapack.h

Description

p?lasrt sorts the numbers in d and the corresponding vectors in q in increasing order.

Input Parameters

id

(global)

= 'I': sort d in increasing order;

= 'D': sort d in decreasing order. (NOT IMPLEMENTED YET)

n

(global)

The number of columns to be operated on i.e the number of columns of the distributed submatrix sub( Q ). n >= 0.

d

(global)

Array, size (n)

q

(local)

Pointer into the local memory to an array of size lld_q*LOCc(jq+n-1) .

This array contains the local pieces of the distributed matrix sub( A ) to be copied from.

iq

(global)

The row index in the global array A indicating the first row of sub( Q ).

jq

(global)

The column index in the global array A indicating the first column of sub( Q ).

descq

(global and local)

Array of size dlen_.

The array descriptor for the distributed matrix A.

work

(local)

Array, size (lwork)

lwork

(local)

The size of the array work.

lwork = MAX( n, NP * ( NB + NQ )), where NP = numroc( n, NB, MYROW, IAROW, NPROW ), NQ = numroc( n, NB, MYCOL, DESCQ( csrc_ ), NPCOL ).

numroc is a ScaLAPACK tool function.

iwork

(local)

Array, size (liwork)

liwork

(local)

The size of the array iwork.

liwork = n + 2*NB + 2*NPCOL

Output Parameters

d

On exit, the numbers in d are sorted in increasing order.

info

(global)

= 0: successful exit

< 0: If the i-th argument is an array and the j-th entry had an illegal value, then info = -(i*100+j), if the i-th argument is a scalar and had an illegal value, then info = -i.