slamrg


NAME

slamrg - will create a permutation list which will merge the elements of A (which is composed of two independently sorted sets) into a single set which is sorted in ascending order


SYNOPSIS

  SUBROUTINE SLAMRG( N1, N2, A, TRD1, TRD2, INDEX)
  INTEGER N1, N2, TRD1, TRD2
  INTEGER INDEX(*)
  REAL A(*)
 
  SUBROUTINE SLAMRG_64( N1, N2, A, TRD1, TRD2, INDEX)
  INTEGER*8 N1, N2, TRD1, TRD2
  INTEGER*8 INDEX(*)
  REAL A(*)
 

F95 INTERFACE

  SUBROUTINE LAMRG( N1, N2, A, TRD1, TRD2, INDEX)
  INTEGER :: N1, N2, TRD1, TRD2
  INTEGER, DIMENSION(:) :: INDEX
  REAL, DIMENSION(:) :: A
 
  SUBROUTINE LAMRG_64( N1, N2, A, TRD1, TRD2, INDEX)
  INTEGER(8) :: N1, N2, TRD1, TRD2
  INTEGER(8), DIMENSION(:) :: INDEX
  REAL, DIMENSION(:) :: A
 

C INTERFACE

#include <sunperf.h>

void slamrg(int n1, int n2, float *a, int trd1, int trd2, int *index);

void slamrg_64(long n1, long n2, float *a, long trd1, long trd2, long *index);


PURPOSE

slamrg will create a permutation list which will merge the elements of A (which is composed of two independently sorted sets) into a single set which is sorted in ascending order.


ARGUMENTS

* N1 (input)
Length of the first sequence to be merged.

* N2 (input)
Length of the second sequence to be merged.

* A (input)
On entry, the first N1 elements of A contain a list of numbers which are sorted in either ascending or descending order. Likewise for the final N2 elements.

* TRD1 (input)
Describes the stride to be taken through the array A for the first N1 elements.

* TRD2 (input)
Describes the stride to be taken through the array A for the first N1 elements.

* INDEX (output)
On exit this array will contain a permutation such that if B( I ) = A( INDEX( I ) ) for I=1,N1+N2, then B will be sorted in ascending order.