13 #ifndef MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP 14 #define MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP 25 template<
template<
typename TreeMetricType,
26 typename TreeStatType,
27 typename TreeMatType>
class TreeType>
41 typename MatType = arma::mat,
42 template<
typename TreeMetricType,
43 typename TreeStatType,
49 typedef TreeType<MetricType, RangeSearchStat, MatType>
Tree;
68 const bool naive =
false,
69 const bool singleMode =
false,
70 const MetricType metric = MetricType());
95 const bool singleMode =
false,
96 const MetricType metric = MetricType());
109 const bool singleMode =
false,
110 const MetricType metric = MetricType());
158 void Train(MatType referenceSet);
163 void Train(Tree* referenceTree);
192 void Search(
const MatType& querySet,
194 std::vector<std::vector<size_t>>& neighbors,
195 std::vector<std::vector<double>>& distances);
233 void Search(Tree* queryTree,
235 std::vector<std::vector<size_t>>& neighbors,
236 std::vector<std::vector<double>>& distances);
268 std::vector<std::vector<size_t>>& neighbors,
269 std::vector<std::vector<double>>& distances);
277 bool Naive()
const {
return naive; }
287 template<
typename Archive>
288 void serialize(Archive& ar,
const uint32_t version);
298 std::vector<size_t> oldFromNewReferences;
303 const MatType* referenceSet;
The RangeSearch class is a template class for performing range searches.
Definition: range_search.hpp:45
bool & SingleMode()
Modify whether single-tree search is being used.
Definition: range_search.hpp:274
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
bool SingleMode() const
Get whether single-tree search is being used.
Definition: range_search.hpp:272
RangeSearch & operator=(const RangeSearch &other)
Deep copy the given RangeSearch model.
Definition: range_search_impl.hpp:172
The core includes that mlpack expects; standard C++ includes and Armadillo.
void serialize(Archive &ar, const uint32_t version)
Serialize the model.
Definition: range_search_impl.hpp:660
RangeSearch(MatType referenceSet, const bool naive=false, const bool singleMode=false, const MetricType metric=MetricType())
Initialize the RangeSearch object with a given reference dataset (this is the dataset which is search...
Definition: range_search_impl.hpp:50
Forward declaration.
Definition: range_search.hpp:28
A binary space partitioning tree, such as a KD-tree or a ball tree.
Definition: binary_space_tree.hpp:54
bool & Naive()
Modify whether naive search is being used.
Definition: range_search.hpp:279
~RangeSearch()
Destroy the RangeSearch object.
Definition: range_search_impl.hpp:235
size_t Scores() const
Get the number of scores during the last search.
Definition: range_search.hpp:284
void Train(MatType referenceSet)
Set the reference set to a new reference set, and build a tree if necessary.
Definition: range_search_impl.hpp:248
bool Naive() const
Get whether naive search is being used.
Definition: range_search.hpp:277
Tree * ReferenceTree()
Return the reference tree (or NULL if in naive mode).
Definition: range_search.hpp:294
const MatType & ReferenceSet() const
Return the reference set.
Definition: range_search.hpp:291
The L_p metric for arbitrary integer p, with an option to take the root.
Definition: lmetric.hpp:63
void Search(const MatType &querySet, const math::Range &range, std::vector< std::vector< size_t >> &neighbors, std::vector< std::vector< double >> &distances)
Search for all reference points in the given range for each point in the query set, returning the results in the neighbors and distances objects.
Definition: range_search_impl.hpp:309
size_t BaseCases() const
Get the number of base cases during the last search.
Definition: range_search.hpp:282
TreeType< MetricType, RangeSearchStat, MatType > Tree
Convenience typedef.
Definition: range_search.hpp:49