auto vector_of_kll_sketches::get_pmf()

in src/vector_of_kll.cpp [452:470]


auto vector_of_kll_sketches<T, C>::get_pmf(ArrInputType<T>& split_points,
                                           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> splits_arr = input_to_vec<T>(split_points);
  size_t num_splits = splits_arr.size();
  
  auto pmfs = make_ndarray<double>(num_sketches, num_splits + 1);
  auto view = pmfs.view();
  for (uint32_t i = 0; i < num_sketches; ++i) {
    auto pmf = sketches_[inds(i)].get_PMF(splits_arr.data(), num_splits);
    for (size_t j = 0; j <= num_splits; ++j) {
      view(i, j) = pmf[j];
    }
  }
  return pmfs;
}