DLASRT2(l)

πŸ“¦ version 1.5, in ubuntu jammy

✨ NAME ✨

okay bestie, meet DLASRT2(l) β€” the LAPACK routine (version 1.5) that sorts the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D'). πŸ’…βœ¨

🌸 SYNOPSIS 🌸

SUBROUTINE DLASRT2( ID, N, D, KEY, INFO )

    CHARACTER       ID

    INTEGER         INFO, N

    INTEGER         KEY( * )

    DOUBLE          PRECISION D( * )

πŸŽ€ PURPOSE πŸŽ€

Sort the numbers in D in increasing order (if ID = 'I') or in decreasing order (if ID = 'D'). No cap, she's got this. ✨

She uses Quick Sort, but reverts to Insertion sort on arrays of size <= 20. The dimension of STACK limits N to about 2**32. πŸ’–

πŸ‘‘ ARGUMENTS πŸ‘‘

  • ID β€” (input) CHARACTER*1
    • = 'I': sort D in increasing order;
    • = 'D': sort D in decreasing order.
  • N β€” (input) INTEGER The length of the array D.
  • D β€” (input/output) DOUBLE PRECISION array, dimension (N) On entry, the array to be sorted. On exit, D has been sorted into increasing order (D(1) <= ... <= D(N)) or into decreasing order (D(1) >= ... >= D(N)), depending on ID.
  • KEY β€” (input/output) 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, 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)).
  • INFO β€” (output) INTEGER
    • = 0: successful exit
    • < 0: if INFO = -i, the i-th argument had an illegal value

LAPACK version 1.5 Β· 12 May 1997 Β· mwah πŸ’‹ slay, bestie 🫢

πŸ“¦ where this page comes from