MLPACK  1.0.7
range_search_rules.hpp
Go to the documentation of this file.
1 
22 #ifndef __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_RULES_HPP
23 #define __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_RULES_HPP
24 
25 namespace mlpack {
26 namespace range {
27 
28 
29 template<typename MetricType, typename TreeType>
31 {
32  public:
44  RangeSearchRules(const arma::mat& referenceSet,
45  const arma::mat& querySet,
46  const math::Range& range,
47  std::vector<std::vector<size_t> >& neighbors,
48  std::vector<std::vector<double> >& distances,
49  MetricType& metric);
50 
57  double BaseCase(const size_t queryIndex, const size_t referenceIndex);
58 
67  double Score(const size_t queryIndex, TreeType& referenceNode);
68 
80  double Rescore(const size_t queryIndex,
81  TreeType& referenceNode,
82  const double oldScore) const;
83 
92  double Score(TreeType& queryNode, TreeType& referenceNode);
93 
105  double Rescore(TreeType& queryNode,
106  TreeType& referenceNode,
107  const double oldScore) const;
108 
109  private:
111  const arma::mat& referenceSet;
112 
114  const arma::mat& querySet;
115 
118 
120  std::vector<std::vector<size_t> >& neighbors;
121 
123  std::vector<std::vector<double> >& distances;
124 
126  MetricType& metric;
127 
132 
136  void AddResult(const size_t queryIndex,
137  TreeType& referenceNode);
138 };
139 
140 }; // namespace range
141 }; // namespace mlpack
142 
143 // Include implementation.
144 #include "range_search_rules_impl.hpp"
145 
146 #endif