Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?lasrt2

Sorts numbers in increasing or decreasing order.

Syntax

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

Description

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

id

= 'I': sort d in increasing order;

= 'D': sort d in decreasing order.

n

The length of the array d.

d

Array of size n.

On entry, the array to be sorted.

key

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

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

= 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.

See Also