52 void unifperm( std::vector<int> & pi,
int q, RUnif & randomClass );
66 if (indx.size() != v.size())
68 indx.resize(v.size());
70 for (
size_t i = 0; i < v.size(); i++)
72 indx[i] =
static_cast<int>(i);
74 std::vector<T> vsort(v);
75 std::sort<typename std::vector<T>::iterator>(vsort.begin(), vsort.end());
77 for (
size_t i = 0; i < v.size(); i++)
79 indx[i] =
static_cast<int>(std::find(vsort.begin(), vsort.end(), v[i]) - vsort.begin());
96 for (
size_t i = 0; i < indx.size(); i++)
109 bool findranksCompare(
const std::pair<T, int> & first,
const std::pair<T, int> & second)
111 return (first.first < second.first);
124 std::vector<std::pair<T, int> > p(v.size());
125 std::vector<int> temp(p.size());
126 for (
size_t i = 0; i < v.size(); i++)
128 p[i] = std::pair<T, int>(v[i],
static_cast<int>(i));
132 if (
rank.size() != v.size())
134 rank.resize(v.size());
138 std::sort(p.begin(), p.end(), findranksCompare<double>);
141 for (
size_t i = 0; i < v.size(); i++)
143 rank[p[i].second] =
static_cast<int>(i);
157 for (
size_t i = 0; i <
rank.size(); i++)