15 #ifndef __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP
16 #define __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP
40 typename MatType = arma::mat,
41 template<
typename TreeMetricType,
42 typename TreeStatType,
48 typedef TreeType<MetricType, RangeSearchStat, MatType>
Tree;
67 const bool naive =
false,
69 const MetricType
metric = MetricType());
91 const bool naive =
false,
93 const MetricType
metric = MetricType());
121 const MetricType
metric = MetricType());
135 const MetricType
metric = MetricType());
151 void Train(
const MatType& referenceSet);
161 void Train(MatType&& referenceSet);
166 void Train(Tree* referenceTree);
195 void Search(
const MatType& querySet,
197 std::vector<std::vector<size_t>>& neighbors,
198 std::vector<std::vector<double>>& distances);
236 void Search(Tree* queryTree,
238 std::vector<std::vector<size_t>>& neighbors,
239 std::vector<std::vector<double>>& distances);
272 std::vector<std::vector<size_t>>& neighbors,
273 std::vector<std::vector<double>>& distances);
291 template<
typename Archive>
292 void Serialize(Archive& ar,
const unsigned int version);
335 #include "range_search_impl.hpp"
The RangeSearch class is a template class for performing range searches.
friend RSModel
For access to mappings when building models.
bool & SingleMode()
Modify whether single-tree search is being used.
bool singleMode
If true, single-tree computation is used.
Linear algebra utility functions, generally performed on matrices or vectors.
LMetric< 2, true > EuclideanDistance
The Euclidean (L2) distance.
bool naive
If true, O(n^2) naive computation is used.
std::vector< size_t > oldFromNewReferences
Mappings to old reference indices (used when this object builds trees).
A binary space partitioning tree, such as a KD-tree or a ball tree.
bool & Naive()
Modify whether naive search is being used.
bool Naive() const
Get whether naive search is being used.
bool SingleMode() const
Get whether single-tree search is being used.
void Train(const MatType &referenceSet)
Set the reference set to a new reference set, and build a tree if necessary.
MetricType metric
Instantiated distance metric.
~RangeSearch()
Destroy the RangeSearch object.
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...
Simple real-valued range.
bool setOwner
If true, we own the reference set.
size_t baseCases
The total number of base cases during the last search.
Tree * ReferenceTree()
Return the reference tree (or NULL if in naive mode).
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
size_t BaseCases() const
Get the number of base cases during the last search.
Tree * referenceTree
Reference tree.
const MatType & ReferenceSet() const
Return the reference set.
void Serialize(Archive &ar, const unsigned int version)
Serialize the model.
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.
size_t Scores() const
Get the number of scores during the last search.
size_t scores
The total number of scores during the last search.
bool treeOwner
If true, this object is responsible for deleting the trees.
const MatType * referenceSet
Reference set (data should be accessed using this).
TreeType< MetricType, RangeSearchStat, MatType > Tree
Convenience typedef.