Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/22/2024
Public
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