1#ifndef KNNCOLLE_SEARCHER_HPP
2#define KNNCOLLE_SEARCHER_HPP
27template<
typename Index_,
typename Data_,
typename Distance_>
61 virtual void search(Index_ i, Index_ k, std::vector<Index_>* output_indices, std::vector<Distance_>* output_distances) = 0;
77 virtual void search(
const Data_* query, Index_ k, std::vector<Index_>* output_indices, std::vector<Distance_>* output_distances) = 0;
106 virtual Index_
search_all([[maybe_unused]] Index_ i, [[maybe_unused]] Distance_ distance, [[maybe_unused]] std::vector<Index_>* output_indices, [[maybe_unused]] std::vector<Distance_>* output_distances) {
107 throw std::runtime_error(
"distance-based searches not supported");
126 virtual Index_
search_all([[maybe_unused]]
const Data_* query, [[maybe_unused]] Distance_ distance, [[maybe_unused]] std::vector<Index_>* output_indices, [[maybe_unused]] std::vector<Distance_>* output_distances) {
127 throw std::runtime_error(
"distance-based searches not supported");
Interface for searching nearest-neighbor search indices.
Definition Searcher.hpp:28
virtual bool can_search_all() const
Definition Searcher.hpp:85
virtual Index_ search_all(const Data_ *query, Distance_ distance, std::vector< Index_ > *output_indices, std::vector< Distance_ > *output_distances)
Definition Searcher.hpp:126
virtual Index_ search_all(Index_ i, Distance_ distance, std::vector< Index_ > *output_indices, std::vector< Distance_ > *output_distances)
Definition Searcher.hpp:106
virtual void search(const Data_ *query, Index_ k, std::vector< Index_ > *output_indices, std::vector< Distance_ > *output_distances)=0
virtual void search(Index_ i, Index_ k, std::vector< Index_ > *output_indices, std::vector< Distance_ > *output_distances)=0
Collection of KNN algorithms.
Definition Bruteforce.hpp:23