void reordd_c ( ConstSpiceInt * iorder,
SpiceInt ndim,
SpiceDouble * array )
Re-order the elements of a double precision array according to
a given order vector.
None.
ARRAY, SORT
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
iorder I Order vector to be used to re-order array.
ndim I Dimension of array.
array I/O Array to be re-ordered.
iorder is the order vector to be used to re-order the input
array. The first element of iorder is the index of
the first item of the re-ordered array, and so on.
Note that the order imposed by reordd_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.
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 re-ordered as specified by iorder.
None.
1) If memory cannot be allocated to create a Fortran-style version of
the input order vector, the error SPICE(MALLOCFAILED) is signaled.
2) If ndim < 2, this routine executes a no-op. This case is
not an error.
None.
reordd_c uses a cyclical algorithm to re-order the elements of
the array in place. After re-ordering, 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 reordd_c is typically created for
a related array by one of the order routines, as shown in
the example below.
In the following example, the ORDER and REORD 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, 11-JAN-2003 (EDW)
Trivial. Corrected 'Detailed_output' section
header to 'Detailed_Output'.
-CSPICE Version 1.0.0, 10-JUL-2002 (NJB)
reorder a d.p. array
Link to routine reordd_c source file reordd_c.c
|