void reordi_c ( ConstSpiceInt * iorder,
SpiceInt ndim,
SpiceInt * array )
Reorder the elements of an integer array according to
a given order vector.
None.
ARRAY, SORT
VARIABLE I/O DESCRIPTION
  
iorder I Order vector to be used to reorder array.
ndim I Dimension of array.
array I/O Array to be reordered.
iorder is the order vector to be used to reorder the input
array. The first element of iorder is the index of
the first item of the reordered array, and so on.
Note that the order imposed by reordi_c is not the
same order that would be imposed by a sorting
routine. In general, the order vector will have
been created (by one of the order routines) for
a related array, as illustrated in the example below.
The elements of iorder range from zero to ndim1.
ndim is the number of elements in the input array.
array on input, is an array containing some number of
elements in unspecified order.
array on output, is the same array, with the elements
in reordered as specified by iorder.
None.
1) If memory cannot be allocated to create a Fortranstyle version of
the input order vector, the error SPICE(MALLOCFAILED) is signaled.
2) If ndim < 2, this routine executes a noop. This case is
not an error.
None.
reordi_c uses a cyclical algorithm to reorder the elements of
the array in place. After reordering, element iorder[0] of
the input array is the first element of the output array,
element iorder[1] is the input array is the second element of
the output array, and so on.
The order vector used by reordi_c is typically created for
a related array by one of the order*_c routines, as shown in
the example below.
In the following example, the order*_c and reord*_c routines are
used to sort four related arrays (containing the names,
masses, integer ID codes, and visual magnitudes for a group
of satellites). This is representative of the typical use of
these routines.
#include "SpiceUsr.h"
.
.
.
/.
Sort the object arrays by name.
./
orderc_c ( namlen, names, n, iorder );
reordc_c ( iorder, n, namlen, names );
reordd_c ( iorder, n, masses );
reordi_c ( iorder, n, codes );
reordd_c ( iorder, n, vmags );
None.
None.
N.J. Bachman (JPL)
W.L. Taber (JPL)
I.M. Underwood (JPL)
CSPICE Version 1.0.0, 10JUL2002 (NJB) (WLT) (IMU)
reorder an integer array
