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.
size_t BaseCases() const
Get the number of base cases during the last search.
bool & Naive()
Modify whether naive search is being used.
Tree * ReferenceTree()
Return the reference tree (or NULL if in naive mode).
Linear algebra utility functions, generally performed on matrices or vectors.
bool Naive() const
Get whether naive search is being used.
void Serialize(Archive &ar, const unsigned int version)
Serialize the model.
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()
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.
bool SingleMode() const
Get whether single-tree search is being used.
const MatType & ReferenceSet() const
Return the reference set.
LMetric< 2, true > EuclideanDistance
The Euclidean (L2) distance.
size_t Scores() const
Get the number of scores during the last search.