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