Developer Reference for Intel® oneAPI Math Kernel Library for C
?lasrt2
Sorts numbers in increasing or decreasing order.
Syntax
voidslasrt2 ( char*id , MKL_INT*n , float*d , MKL_INT*key , MKL_INT*info );
voiddlasrt2 ( char*id , MKL_INT*n , double*d , MKL_INT*key , MKL_INT*info );
Include Files
mkl_scalapack.h
Description
slasrt2 dlasrt2 The ?lasrt2 routine function is modified LAPACK routine function ?lasrt (Sorts numbers in increasing or decreasing order.) , which sorts the numbers in d in increasing order (if id = 'I' ) or in decreasing order (if id = 'D' ). It uses Quick Sort, reverting to Insertion Sort on arrays of size ≤ 20. The size of STACK limits n to about 2 32 .
Input Parameters
- id
-
CHARACTER*1 . = ‘I’ : sort d in increasing order; = ‘D’ : sort d in decreasing order.
n
The length of the array d .
- d
-
REAL for slasrt2 DOUBLE PRECISION for dlasrt2 . Array of size n . On entry, the array to be sorted.
- key
-
INTEGER . Array of size n .
Typically, key [ i ]= i +1 for all i = 0, …, n -1 .
Output Parameters
- d
-
On exit, d has been sorted into increasing order
( d [0] ≤ … ≤ d [ n - 1] )
or into decreasing order
( d [0] ≥ … ≥ d [ n - 1] ) ,
depending on id .
- info
-
INTEGER . = 0 : successful exit < 0 : if info = -i , the i -th argument had an illegal value.
key
On exit, key is permuted in exactly the same manner as d was permuted from input to output. Therefore, if key [ i ] = i +1 for all i =0, …, n-1 on input, d [ i ] on output equals d [ key [ i ]-1] on input .