23 #ifndef __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_HPP
24 #define __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_HPP
59 template<
typename SortPolicy = NearestNeighborSort,
61 typename TreeType = tree::BinarySpaceTree<bound::HRectBound<2>,
62 NeighborSearchStat<SortPolicy> > >
87 const typename TreeType::Mat&
querySet,
88 const bool naive =
false,
90 const size_t leafSize = 20,
91 const MetricType
metric = MetricType());
115 const bool naive =
false,
117 const size_t leafSize = 20,
118 const MetricType
metric = MetricType());
151 const typename TreeType::Mat& referenceSet,
152 const typename TreeType::Mat& querySet,
154 const MetricType
metric = MetricType());
184 const typename TreeType::Mat& referenceSet,
186 const MetricType
metric = MetricType());
207 void Search(
const size_t k,
208 arma::Mat<size_t>& resultingNeighbors,
209 arma::mat& distances);
254 #include "neighbor_search_impl.hpp"
bool hasQuerySet
Indicates if a separate query set was passed.
arma::mat referenceCopy
Copy of reference dataset (if we need it, because tree building modifies it).
~NeighborSearch()
Delete the NeighborSearch object.
const arma::mat & referenceSet
Reference dataset.
The NeighborSearch class is a template class for performing distance-based neighbor searches...
std::vector< size_t > oldFromNewReferences
Permutations of reference points during tree building.
LMetric< 2, false > SquaredEuclideanDistance
const arma::mat & querySet
Query dataset (may not be given).
bool naive
Indicates if O(n^2) naive search is being used.
MetricType metric
Instantiation of metric.
std::vector< size_t > oldFromNewQueries
Permutations of query points during tree building.
NeighborSearch(const typename TreeType::Mat &referenceSet, const typename TreeType::Mat &querySet, const bool naive=false, const bool singleMode=false, const size_t leafSize=20, const MetricType metric=MetricType())
Initialize the NeighborSearch object, passing both a query and reference dataset. ...
bool treeOwner
If true, this object created the trees and is responsible for them.
size_t numberOfPrunes
Total number of pruned nodes during the neighbor search.
bool singleMode
Indicates if single-tree search is being used (opposed to dual-tree).
TreeType * referenceTree
Pointer to the root of the reference tree.
void Search(const size_t k, arma::Mat< size_t > &resultingNeighbors, arma::mat &distances)
Compute the nearest neighbors and store the output in the given matrices.
TreeType * queryTree
Pointer to the root of the query tree (might not exist).
arma::mat queryCopy
Copy of query dataset (if we need it, because tree building modifies it).