range_search_rules.hpp

Go to the documentation of this file.
00001 
00022 #ifndef __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_RULES_HPP
00023 #define __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_RULES_HPP
00024 
00025 namespace mlpack {
00026 namespace range {
00027 
00028 
00029 template<typename MetricType, typename TreeType>
00030 class RangeSearchRules
00031 {
00032  public:
00044   RangeSearchRules(const arma::mat& referenceSet,
00045                    const arma::mat& querySet,
00046                    const math::Range& range,
00047                    std::vector<std::vector<size_t> >& neighbors,
00048                    std::vector<std::vector<double> >& distances,
00049                    MetricType& metric);
00050 
00057   double BaseCase(const size_t queryIndex, const size_t referenceIndex);
00058 
00067   double Score(const size_t queryIndex, TreeType& referenceNode);
00068 
00080   double Rescore(const size_t queryIndex,
00081                  TreeType& referenceNode,
00082                  const double oldScore) const;
00083 
00092   double Score(TreeType& queryNode, TreeType& referenceNode);
00093 
00105   double Rescore(TreeType& queryNode,
00106                  TreeType& referenceNode,
00107                  const double oldScore) const;
00108 
00109  private:
00111   const arma::mat& referenceSet;
00112 
00114   const arma::mat& querySet;
00115 
00117   const math::Range& range;
00118 
00120   std::vector<std::vector<size_t> >& neighbors;
00121 
00123   std::vector<std::vector<double> >& distances;
00124 
00126   MetricType& metric;
00127 
00129   size_t lastQueryIndex;
00131   size_t lastReferenceIndex;
00132 
00136   void AddResult(const size_t queryIndex,
00137                  TreeType& referenceNode);
00138 };
00139 
00140 }; // namespace range
00141 }; // namespace mlpack
00142 
00143 // Include implementation.
00144 #include "range_search_rules_impl.hpp"
00145 
00146 #endif

Generated on 13 Aug 2014 for MLPACK by  doxygen 1.6.1