23 #ifndef __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
24 #define __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
31 template<
typename SortPolicy,
typename MetricType,
typename TreeType>
36 const typename TreeType::Mat&
querySet,
48 double BaseCase(
const size_t queryIndex,
const size_t referenceIndex);
58 double Score(
const size_t queryIndex, TreeType& referenceNode);
71 double Rescore(
const size_t queryIndex,
72 TreeType& referenceNode,
73 const double oldScore)
const;
83 double Score(TreeType& queryNode, TreeType& referenceNode);
96 double Rescore(TreeType& queryNode,
97 TreeType& referenceNode,
98 const double oldScore)
const;
166 const size_t neighbor,
167 const double distance);
174 #include "neighbor_search_rules_impl.hpp"
176 #endif // __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
double CalculateBound(TreeType &queryNode) const
Recalculate the bound for a given query node.
TraversalInfoType & TraversalInfo()
Modify the traversal info.
size_t lastQueryIndex
The last query point BaseCase() was called with.
Linear algebra utility functions, generally performed on matrices or vectors.
arma::mat & distances
The matrix the resultant neighbor distances should be stored in.
TraversalInfoType traversalInfo
Traversal info for the parent combination; this is updated by the traversal before each call to Score...
size_t BaseCases() const
Get the number of base cases that have been performed.
const TreeType::Mat & referenceSet
The reference set.
void InsertNeighbor(const size_t queryIndex, const size_t pos, const size_t neighbor, const double distance)
Insert a point into the neighbors and distances matrices; this is a helper function.
NeighborSearchTraversalInfo< TreeType > TraversalInfoType
Convenience typedef.
const TraversalInfoType & TraversalInfo() const
Get the traversal info.
Traversal information for NeighborSearch.
size_t & Scores()
Modify the number of scores that have been performed.
double lastBaseCase
The last base case result.
size_t Scores() const
Get the number of scores that have been performed.
size_t lastReferenceIndex
The last reference point BaseCase() was called with.
double Score(const size_t queryIndex, TreeType &referenceNode)
Get the score for recursion order.
NeighborSearchRules(const typename TreeType::Mat &referenceSet, const typename TreeType::Mat &querySet, arma::Mat< size_t > &neighbors, arma::mat &distances, MetricType &metric)
arma::Mat< size_t > & neighbors
The matrix the resultant neighbor indices should be stored in.
double BaseCase(const size_t queryIndex, const size_t referenceIndex)
Get the distance from the query point to the reference point.
size_t & BaseCases()
Modify the number of base cases that have been performed.
double Rescore(const size_t queryIndex, TreeType &referenceNode, const double oldScore) const
Re-evaluate the score for recursion order.
MetricType & metric
The instantiated metric.
size_t scores
The number of scores that have been performed.
size_t baseCases
The number of base cases that have been performed.
const TreeType::Mat & querySet
The query set.