MLPACK  1.0.7
range_search.hpp
Go to the documentation of this file.
1 
23 #ifndef __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP
24 #define __MLPACK_METHODS_RANGE_SEARCH_RANGE_SEARCH_HPP
25 
26 #include <mlpack/core.hpp>
27 
29 
31 
32 #include "range_search_stat.hpp"
33 
34 namespace mlpack {
35 namespace range {
36 
43 template<typename MetricType = mlpack::metric::EuclideanDistance,
47 {
48  public:
68  RangeSearch(const typename TreeType::Mat& referenceSet,
69  const typename TreeType::Mat& querySet,
70  const bool naive = false,
71  const bool singleMode = false,
72  const size_t leafSize = 20,
73  const MetricType metric = MetricType());
74 
94  RangeSearch(const typename TreeType::Mat& referenceSet,
95  const bool naive = false,
96  const bool singleMode = false,
97  const size_t leafSize = 20,
98  const MetricType metric = MetricType());
99 
129  RangeSearch(TreeType* referenceTree,
130  TreeType* queryTree,
131  const typename TreeType::Mat& referenceSet,
132  const typename TreeType::Mat& querySet,
133  const bool singleMode = false,
134  const MetricType metric = MetricType());
135 
163  RangeSearch(TreeType* referenceTree,
164  const typename TreeType::Mat& referenceSet,
165  const bool singleMode = false,
166  const MetricType metric = MetricType());
167 
172  ~RangeSearch();
173 
200  void Search(const math::Range& range,
201  std::vector<std::vector<size_t> >& neighbors,
202  std::vector<std::vector<double> >& distances);
203 
204  private:
206  typename TreeType::Mat referenceCopy;
208  typename TreeType::Mat queryCopy;
209 
211  const typename TreeType::Mat& referenceSet;
213  const typename TreeType::Mat& querySet;
214 
216  TreeType* referenceTree;
218  TreeType* queryTree;
219 
221  std::vector<size_t> oldFromNewReferences;
223  std::vector<size_t> oldFromNewQueries;
224 
226  bool treeOwner;
230 
232  bool naive;
235 
237  MetricType metric;
238 
240  size_t numPrunes;
241 };
242 
243 }; // namespace range
244 }; // namespace mlpack
245 
246 // Include implementation.
247 #include "range_search_impl.hpp"
248 
249 #endif