Prev Next Index-> contents reference index search external Up-> CppAD utility index_sort CppAD-> Install Introduction AD ADFun preprocessor multi_thread utility ipopt_solve Example speed Appendix utility-> ErrorHandler NearEqual speed_test SpeedTest time_test test_boolofvoid NumericType CheckNumericType SimpleVector CheckSimpleVector nan pow_int Poly LuDetAndSolve RombergOne RombergMul Runge45 Rosen34 OdeErrControl OdeGear OdeGearControl CppAD_vector thread_alloc index_sort to_string set_union sparse_rc sparse_rcv index_sort-> index_sort.cpp Headings-> Syntax keys ind ---..Input ---..Return Example

Returns Indices that Sort a Vector

Syntax
# include <cppad/utility/index_sort.hpp>  index_sort(keys, ind)

keys
The argument keys has prototype       const VectorKey& keys  where VectorKey is a SimpleVector class with elements that support the < operation.

ind
The argument ind has prototype       VectorSize& ind  where VectorSize is a SimpleVector class with elements of type size_t. The routine CheckSimpleVector 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
The file index_sort.cpp contains an example and test of this routine. It return true if it succeeds and false otherwise.