\newcommand{\W}[1]{ \; #1 \; }
\newcommand{\R}[1]{ {\rm #1} }
\newcommand{\B}[1]{ {\bf #1} }
\newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} }
\newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} }
\newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} }
\newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }This is cppad-20221105 documentation. Here is a link to its
current documentation
.
Returns Indices that Sort a Vector
Syntax # include <cppad/utility/index_sort.hpp> index_sort(keys, ind)
keys
The argument
keys
has prototype
const KeyVector& keys
where
KeyVector
is
a SimpleVector
class with elements that support the <
operation.
ind
The argument
ind
has prototype
SizeVector& ind
where
SizeVector
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.
Input File: include/cppad/utility/index_sort.hpp