Contents


NAME

     slasrt - the numbers in D in increasing order (if ID =  'I')
     or in decreasing order (if ID = 'D' )

SYNOPSIS

     SUBROUTINE SLASRT(ID, N, D, INFO)

     CHARACTER * 1 ID
     INTEGER N, INFO
     REAL D(*)

     SUBROUTINE SLASRT_64(ID, N, D, INFO)

     CHARACTER * 1 ID
     INTEGER*8 N, INFO
     REAL D(*)

  F95 INTERFACE
     SUBROUTINE LASRT(ID, [N], D, [INFO])

     CHARACTER(LEN=1) :: ID
     INTEGER :: N, INFO
     REAL, DIMENSION(:) :: D

     SUBROUTINE LASRT_64(ID, [N], D, [INFO])

     CHARACTER(LEN=1) :: ID
     INTEGER(8) :: N, INFO
     REAL, DIMENSION(:) :: D

  C INTERFACE
     #include <sunperf.h>

     void slasrt(char id, int n, float *d, int *info);

     void slasrt_64(char id, long n, float *d, long *info);

PURPOSE

     slasrt the numbers in D in increasing order (if ID = 'I') or
     in decreasing order (if ID = 'D' ).

     Use Quick Sort, reverting to Insertion sort on arrays of
     size <= 20. Dimension of STACK limits N to about 2**32.

ARGUMENTS

     ID (input)
               = 'I': sort D in increasing order;
               = 'D': sort D in decreasing order.

     N (input) The length of the array D.

     D (input/output)
               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.

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value