void reordl_c ( ConstSpiceInt * iorder,
SpiceInt ndim,
SpiceBoolean * array )
Re-order the elements of a logical (Boolean) 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 reordl_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 ndim-1.
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 memory cannot be allocated to create a type "logical" copy of the
the input SpiceBoolean array, the error SPICE(MALLOCFAILED) is
signaled.
3) If ndim < 2, this routine executes a no-op. This case is
not an error.
None.
reordl_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 reordl_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 );
ordvec
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, 10-JUL-2002 (NJB) (WLT) (IMU)
reorder a logical array
Link to routine reordl_c source file reordl_c.c
|