lines 9-69 of file: include/cppad/utility/index_sort.hpp {xrst_begin index_sort} Returns Indices that Sort a Vector ################################## Syntax ****** # ``include `` ``index_sort`` ( *keys* , *ind* ) keys **** The argument *keys* has prototype ``const`` *KeyVector* & *keys* where *KeyVector* is a :ref:`SimpleVector-name` class with elements that support the ``<`` operation. ind *** The argument *ind* has prototype *SizeVector* & *ind* where *SizeVector* is a :ref:`SimpleVector-name` class with elements of type *Size_t* , where *Size_t* is an integral type. The routine :ref:`CheckSimpleVector-name` will generate an error message if this is not the case. Input ===== The size of *ind* must be the same as the size of *keys* and the value of its input elements does not matter. Return ====== Upon return, *ind* is a permutation of the set of indices that yields increasing order for *keys* . In other words, for all *i* != *j* , *ind* [ *i* ] != *ind* [ *j* ] and for *i* = 0 , ... , *size* ``-2`` , ( *keys* [ *ind* [ *i* +1] ] < *keys* [ *ind* [ *i* ] ] ) == ``false`` Example ******* {xrst_toc_hidden example/utility/index_sort.cpp } The file :ref:`index_sort.cpp-name` contains an example and test of this routine. It return true if it succeeds and false otherwise. {xrst_end index_sort}