1#ifndef KNNCOLLE_BUILDER_HPP
2#define KNNCOLLE_BUILDER_HPP
27template<
typename Index_,
typename Data_,
typename Distance_,
class Matrix_ = Matrix<Index_, Data_> >
41 static_assert(std::is_same<decltype(std::declval<Matrix_>().num_observations()), Index_>::value);
42 static_assert(std::is_same<typename std::remove_pointer<decltype(std::declval<Matrix_>().new_extractor()->next())>::type,
const Data_>::value);
58 std::shared_ptr<Prebuilt<Index_, Data_, Distance_> >
build_shared(
const Matrix_& data)
const {
59 return std::shared_ptr<Prebuilt<Index_, Data_, Distance_> >(
build_raw(data));
66 std::unique_ptr<Prebuilt<Index_, Data_, Distance_> >
build_unique(
const Matrix_& data)
const {
67 return std::unique_ptr<Prebuilt<Index_, Data_, Distance_> >(
build_raw(data));
Interface for the input matrix.
Interface for prebuilt nearest-neighbor indices.
Interface to build nearest-neighbor search indices.
Definition Builder.hpp:28
std::unique_ptr< Prebuilt< Index_, Data_, Distance_ > > build_unique(const Matrix_ &data) const
Definition Builder.hpp:66
std::shared_ptr< Prebuilt< Index_, Data_, Distance_ > > build_shared(const Matrix_ &data) const
Definition Builder.hpp:58
virtual Prebuilt< Index_, Data_, Distance_ > * build_raw(const Matrix_ &data) const =0
Interface for prebuilt nearest-neighbor search indices.
Definition Prebuilt.hpp:28
Collection of KNN algorithms.
Definition Bruteforce.hpp:24