Sorts numbers in increasing or decreasing order.


void slasrt2 (char *id , MKL_INT *n , float *d , MKL_INT *key , MKL_INT *info );

void dlasrt2 (char *id , MKL_INT *n , double *d , MKL_INT *key , MKL_INT *info );

Include Files

  • mkl_scalapack.h


The ?lasrt2function is modified LAPACK function ?lasrt, 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 232.

Input Parameters


= 'I': sort d in increasing order;

= 'D': sort d in decreasing order.


The length of the array d.


Array of size n.

On entry, the array to be sorted.


Array of size n.

On entry, key contains a key to each of the entries in d.

Typically, key[i]= i+1 for all i = 0, ..., n-1.

Output Parameters


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.


= 0: successful exit

< 0: if info = -i, the i-th argument had an illegal value.


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.

See Also

For more complete information about compiler optimizations, see our Optimization Notice.
Select sticky button color: 
Orange (only for download buttons)