13 #ifndef MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP
14 #define MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP
38 typename MatType = arma::mat,
39 template<
typename TreeMetricType,
40 typename TreeStatType,
46 typedef TreeType<MetricType, RangeSearchStat, MatType>
Tree;
65 const bool naive =
false,
66 const bool singleMode =
false,
67 const MetricType metric = MetricType());
89 const bool naive =
false,
90 const bool singleMode =
false,
91 const MetricType metric = MetricType());
118 const bool singleMode =
false,
119 const MetricType metric = MetricType());
132 const bool singleMode =
false,
133 const MetricType metric = MetricType());
160 void Train(
const MatType& referenceSet);
170 void Train(MatType&& referenceSet);
204 void Search(
const MatType& querySet,
206 std::vector<std::vector<size_t>>& neighbors,
207 std::vector<std::vector<double>>& distances);
247 std::vector<std::vector<size_t>>& neighbors,
248 std::vector<std::vector<double>>& distances);
281 std::vector<std::vector<size_t>>& neighbors,
282 std::vector<std::vector<double>>& distances);
290 bool Naive()
const {
return naive; }
300 template<
typename Archive>
301 void Serialize(Archive& ar,
const unsigned int version);
311 std::vector<size_t> oldFromNewReferences;
316 const MatType* referenceSet;
344 #include "range_search_impl.hpp"
The RangeSearch class is a template class for performing range searches.
bool & Naive()
Modify whether naive search is being used.
Tree * ReferenceTree()
Return the reference tree (or NULL if in naive mode).
void Serialize(Archive &ar, const unsigned int version)
Serialize the model.
size_t BaseCases() const
Get the number of base cases during the last search.
The core includes that mlpack expects; standard C++ includes and Armadillo.
A binary space partitioning tree, such as a KD-tree or a ball tree.
bool SingleMode() const
Get whether single-tree search is being used.
bool & SingleMode()
Modify whether single-tree search is being used.
~RangeSearch()
Destroy the RangeSearch object.
TrainVisitor sets the reference set to a new reference set on the given RSType.
TreeType< MetricType, RangeSearchStat, MatType > Tree
Convenience typedef.
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.
RangeSearch(const 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...
void Train(const MatType &referenceSet)
Set the reference set to a new reference set, and build a tree if necessary.
const MatType & ReferenceSet() const
Return the reference set.
size_t Scores() const
Get the number of scores during the last search.
LMetric< 2, true > EuclideanDistance
The Euclidean (L2) distance.
bool Naive() const
Get whether naive search is being used.