MLPACK  1.0.10
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 #include "../neighbor_search/ns_traversal_info.hpp"
26 
27 namespace mlpack {
28 namespace range {
29 
30 
31 template<typename MetricType, typename TreeType>
33 {
34  public:
46  RangeSearchRules(const arma::mat& referenceSet,
47  const arma::mat& querySet,
48  const math::Range& range,
49  std::vector<std::vector<size_t> >& neighbors,
50  std::vector<std::vector<double> >& distances,
51  MetricType& metric);
52 
59  double BaseCase(const size_t queryIndex, const size_t referenceIndex);
60 
69  double Score(const size_t queryIndex, TreeType& referenceNode);
70 
82  double Rescore(const size_t queryIndex,
83  TreeType& referenceNode,
84  const double oldScore) const;
85 
94  double Score(TreeType& queryNode, TreeType& referenceNode);
95 
107  double Rescore(TreeType& queryNode,
108  TreeType& referenceNode,
109  const double oldScore) const;
110 
112 
113  const TraversalInfoType& TraversalInfo() const { return traversalInfo; }
114  TraversalInfoType& TraversalInfo() { return traversalInfo; }
115 
116  private:
118  const arma::mat& referenceSet;
119 
121  const arma::mat& querySet;
122 
125 
127  std::vector<std::vector<size_t> >& neighbors;
128 
130  std::vector<std::vector<double> >& distances;
131 
133  MetricType& metric;
134 
139 
143  void AddResult(const size_t queryIndex,
144  TreeType& referenceNode);
145 
146  TraversalInfoType traversalInfo;
147 };
148 
149 }; // namespace range
150 }; // namespace mlpack
151 
152 // Include implementation.
153 #include "range_search_rules_impl.hpp"
154 
155 #endif
const arma::mat & referenceSet
The reference set.
size_t lastReferenceIndex
The last reference index.
void AddResult(const size_t queryIndex, TreeType &referenceNode)
Add all the points in the given node to the results for the given query point.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: load.hpp:31
RangeSearchRules(const arma::mat &referenceSet, const arma::mat &querySet, const math::Range &range, std::vector< std::vector< size_t > > &neighbors, std::vector< std::vector< double > > &distances, MetricType &metric)
Construct the RangeSearchRules object.
std::vector< std::vector< double > > & distances
The vector the resultant neighbor distances should be stored in.
double Score(const size_t queryIndex, TreeType &referenceNode)
Get the score for recursion order.
size_t lastQueryIndex
The last query index.
Traversal information for NeighborSearch.
const arma::mat & querySet
The query set.
neighbor::NeighborSearchTraversalInfo< TreeType > TraversalInfoType
const TraversalInfoType & TraversalInfo() const
const math::Range & range
The range of distances for which we are searching.
double BaseCase(const size_t queryIndex, const size_t referenceIndex)
Compute the base case between the given query point and reference point.
double Rescore(const size_t queryIndex, TreeType &referenceNode, const double oldScore) const
Re-evaluate the score for recursion order.
MetricType & metric
The instantiated metric.
Simple real-valued range.
Definition: range.hpp:31
std::vector< std::vector< size_t > > & neighbors
The vector the resultant neighbor indices should be stored in.