1 #ifndef STAN_MATH_PRIM_MAT_FUN_SORT_INDICES_HPP
2 #define STAN_MATH_PRIM_MAT_FUN_SORT_INDICES_HPP
23 template <
bool ascending,
typename C>
24 class index_comparator {
34 explicit index_comparator(
const C& xs) : xs_(xs) { }
44 bool operator()(
int i,
int j)
const {
46 return xs_[i-1] < xs_[j-1];
48 return xs_[i-1] > xs_[j-1];
63 template <
bool ascending,
typename C>
64 std::vector<int> sort_indices(
const C& xs) {
65 typedef typename index_type<C>::type idx_t;
66 idx_t
size = xs.size();
67 std::vector<int> idxs;
69 for (idx_t i = 0; i <
size; ++i)
71 index_comparator<ascending, C> comparator(xs);
72 std::sort(idxs.begin(), idxs.end(), comparator);
int size(const std::vector< T > &x)
Return the size of the specified standard vector.