knncolle
Collection of KNN methods in C++
Loading...
Searching...
No Matches
Prebuilt.hpp
Go to the documentation of this file.
1#ifndef KNNCOLLE_PREBUILT_HPP
2#define KNNCOLLE_PREBUILT_HPP
3
4#include <memory>
5#include <cstddef>
6#include <filesystem>
7
8#include "Searcher.hpp"
9
16namespace knncolle {
17
28template<typename Index_, typename Data_, typename Distance_>
29class Prebuilt {
30public:
34 Prebuilt() = default;
35 Prebuilt(const Prebuilt&) = default;
36 Prebuilt(Prebuilt&&) = default;
37 Prebuilt& operator=(const Prebuilt&) = default;
38 Prebuilt& operator=(Prebuilt&&) = default;
39 virtual ~Prebuilt() = default;
44public:
48 virtual Index_ num_observations() const = 0;
49
53 virtual std::size_t num_dimensions() const = 0;
54
55public:
60 virtual std::unique_ptr<Searcher<Index_, Data_, Distance_> > initialize() const = 0;
61
86 virtual void save([[maybe_unused]] const std::filesystem::path& dir) const {
87 throw std::runtime_error("saving is not supported");
88 }
89
90public:
98 auto initialize_known() const {
99 return initialize();
100 }
101};
102
103}
104
105#endif
Interface for searching nearest-neighbor indices.
Interface for prebuilt nearest-neighbor search indices.
Definition Prebuilt.hpp:29
auto initialize_known() const
Definition Prebuilt.hpp:98
virtual Index_ num_observations() const =0
virtual std::unique_ptr< Searcher< Index_, Data_, Distance_ > > initialize() const =0
virtual std::size_t num_dimensions() const =0
virtual void save(const std::filesystem::path &dir) const
Definition Prebuilt.hpp:86
Collection of KNN algorithms.
Definition Bruteforce.hpp:29