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 MetricType
metric = MetricType());
114 const bool naive =
false,
116 const MetricType
metric = MetricType());
149 const typename TreeType::Mat& referenceSet,
150 const typename TreeType::Mat& querySet,
152 const MetricType
metric = MetricType());
182 const typename TreeType::Mat& referenceSet,
184 const MetricType
metric = MetricType());
205 void Search(
const size_t k,
206 arma::Mat<size_t>& resultingNeighbors,
207 arma::mat& distances);
252 #include "neighbor_search_impl.hpp" bool hasQuerySet
Indicates if a separate query set was passed.
TreeType::Mat referenceCopy
Copy of reference dataset (if we need it, because tree building modifies it).
const TreeType::Mat & querySet
Query dataset (may not be given).
Linear algebra utility functions, generally performed on matrices or vectors.
~NeighborSearch()
Delete the NeighborSearch object.
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
TreeType::Mat queryCopy
Copy of query dataset (if we need it, because tree building modifies it).
bool naive
Indicates if O(n^2) naive search is being used.
NeighborSearch(const typename TreeType::Mat &referenceSet, const typename TreeType::Mat &querySet, const bool naive=false, const bool singleMode=false, const MetricType metric=MetricType())
Initialize the NeighborSearch object, passing both a query and reference dataset. ...
MetricType metric
Instantiation of metric.
std::vector< size_t > oldFromNewQueries
Permutations of query points during tree building.
std::string ToString() const
bool treeOwner
If true, this object created the trees and is responsible for them.
const TreeType::Mat & referenceSet
Reference dataset.
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).