MLPACK  1.0.8
neighbor_search_rules.hpp
Go to the documentation of this file.
1 
23 #ifndef __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
24 #define __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
25 
26 namespace mlpack {
27 namespace neighbor {
28 
29 template<typename SortPolicy, typename MetricType, typename TreeType>
31 {
32  public:
33  NeighborSearchRules(const arma::mat& referenceSet,
34  const arma::mat& querySet,
35  arma::Mat<size_t>& neighbors,
36  arma::mat& distances,
37  MetricType& metric);
38 
39  double BaseCase(const size_t queryIndex, const size_t referenceIndex);
40 
49  double Score(const size_t queryIndex, TreeType& referenceNode);
50 
62  double Rescore(const size_t queryIndex,
63  TreeType& referenceNode,
64  const double oldScore) const;
65 
74  double Score(TreeType& queryNode, TreeType& referenceNode);
75 
87  double Rescore(TreeType& queryNode,
88  TreeType& referenceNode,
89  const double oldScore) const;
90 
91  private:
93  const arma::mat& referenceSet;
94 
96  const arma::mat& querySet;
97 
99  arma::Mat<size_t>& neighbors;
100 
102  arma::mat& distances;
103 
105  MetricType& metric;
106 
112  double lastBaseCase;
113 
117  double CalculateBound(TreeType& queryNode) const;
118 
128  void InsertNeighbor(const size_t queryIndex,
129  const size_t pos,
130  const size_t neighbor,
131  const double distance);
132 };
133 
134 }; // namespace neighbor
135 }; // namespace mlpack
136 
137 // Include implementation.
138 #include "neighbor_search_rules_impl.hpp"
139 
140 #endif // __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
double CalculateBound(TreeType &queryNode) const
Recalculate the bound for a given query node.
size_t lastQueryIndex
The last query point BaseCase() was called with.
arma::mat & distances
The matrix the resultant neighbor distances should be stored in.
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.
const arma::mat & referenceSet
The reference set.
double lastBaseCase
The last base case result.
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.
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)
const arma::mat & querySet
The query set.
double Rescore(const size_t queryIndex, TreeType &referenceNode, const double oldScore) const
Re-evaluate the score for recursion order.
MetricType & metric
The instantiated metric.
NeighborSearchRules(const arma::mat &referenceSet, const arma::mat &querySet, arma::Mat< size_t > &neighbors, arma::mat &distances, MetricType &metric)