Sorts numbers in increasing or decreasing order.
call slasrt2(id, n, d, key, info)
call dlasrt2(id, n, d, key, info)
The ?lasrt2 routine is modified LAPACK routine ?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. Dimension of STACK limits n to about 232.
CHARACTER*1.
= 'I': sort d in increasing order;
= 'D': sort d in decreasing order.
INTEGER. The length of the array d.
REAL for slasrt2
DOUBLE PRECISION for dlasrt2.
Array, DIMENSION (n).
On entry, the array to be sorted.
INTEGER.
Array, DIMENSION (n).
On entry, key contains a key to each of the entries in d().
Typically, key(i) = i for all i .
On exit, d has been sorted into increasing order
(d(1) ≤ ... ≤ d(n) ) or into decreasing order
(d(1) ≥ ... ≥ d(n) ), depending on id.
INTEGER.
= 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 for all i upon input, then d_out(i) = d_in(key(i)).