auto vector_of_kll_sketches::input_to_vec()

in src/vector_of_kll.cpp [196:213]


auto vector_of_kll_sketches<T, C>::input_to_vec(ArrInputType<TT>& input) const -> Array1D<TT> {
  if (std::holds_alternative<nb::ndarray<>>(input)) {
    nb::ndarray<> arr = std::get<nb::ndarray<>>(input);
    return Array1D<TT>(arr);
  } else if (std::holds_alternative<nb::list>(input)) {
    nb::list list = std::get<nb::list>(input);
    Array1D<TT> output = make_ndarray<TT>(list.size());
    for (size_t i = 0; i < list.size(); ++i)
      output(i) = nb::cast<TT>(list[i]);
    return output;
  } else if (std::holds_alternative<TT>(input)) {
    Array1D<TT> output = make_ndarray<TT>(1);
    output(0) = std::get<TT>(input);
    return output;
  } else {
    nb::raise_type_error("Unknown input type");
  }
}