in src/vector_of_kll.cpp [429:448]
auto vector_of_kll_sketches<T, C>::get_ranks(ArrInputType<T>& values,
ArrInputType<int>& isk) const -> Array2D<double> {
Array1D<int> indices = input_to_vec<int>(isk);
Array1D<uint32_t> inds = get_indices(indices);
size_t num_sketches = inds.size();
Array1D<T> values_arr = input_to_vec<T>(values);
size_t num_ranks = values_arr.size();
auto vals = values_arr.view();
auto ranks = make_ndarray<double>(num_sketches, num_ranks);
auto view = ranks.view();
for (uint32_t i = 0; i < num_sketches; ++i) {
const size_t offset = i * num_ranks;
for (size_t j = 0; j < num_ranks; ++j) {
view(i, j) = sketches_[inds(i)].get_rank(vals(j));
}
}
return ranks;
}