neighbor_search_rules.hpp

Go to the documentation of this file.
00001 
00023 #ifndef __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
00024 #define __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP
00025 
00026 namespace mlpack {
00027 namespace neighbor {
00028 
00029 template<typename SortPolicy, typename MetricType, typename TreeType>
00030 class NeighborSearchRules
00031 {
00032  public:
00033   NeighborSearchRules(const arma::mat& referenceSet,
00034                       const arma::mat& querySet,
00035                       arma::Mat<size_t>& neighbors,
00036                       arma::mat& distances,
00037                       MetricType& metric);
00038 
00039   double BaseCase(const size_t queryIndex, const size_t referenceIndex);
00040 
00049   double Score(const size_t queryIndex, TreeType& referenceNode);
00050 
00062   double Rescore(const size_t queryIndex,
00063                  TreeType& referenceNode,
00064                  const double oldScore) const;
00065 
00074   double Score(TreeType& queryNode, TreeType& referenceNode);
00075 
00087   double Rescore(TreeType& queryNode,
00088                  TreeType& referenceNode,
00089                  const double oldScore) const;
00090 
00091  private:
00093   const arma::mat& referenceSet;
00094 
00096   const arma::mat& querySet;
00097 
00099   arma::Mat<size_t>& neighbors;
00100 
00102   arma::mat& distances;
00103 
00105   MetricType& metric;
00106 
00108   size_t lastQueryIndex;
00110   size_t lastReferenceIndex;
00112   double lastBaseCase;
00113 
00117   double CalculateBound(TreeType& queryNode) const;
00118 
00128   void InsertNeighbor(const size_t queryIndex,
00129                       const size_t pos,
00130                       const size_t neighbor,
00131                       const double distance);
00132 };
00133 
00134 }; // namespace neighbor
00135 }; // namespace mlpack
00136 
00137 // Include implementation.
00138 #include "neighbor_search_rules_impl.hpp"
00139 
00140 #endif // __MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_RULES_HPP

Generated on 29 Sep 2016 for MLPACK by  doxygen 1.6.1