MLPACK  1.0.11
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>
29 #include "range_search_stat.hpp"
30 
31 namespace mlpack {
32 namespace range {
33 
40 template<typename MetricType = mlpack::metric::EuclideanDistance,
44 {
45  public:
65  RangeSearch(const typename TreeType::Mat& referenceSet,
66  const typename TreeType::Mat& querySet,
67  const bool naive = false,
68  const bool singleMode = false,
69  const MetricType metric = MetricType());
70 
90  RangeSearch(const typename TreeType::Mat& referenceSet,
91  const bool naive = false,
92  const bool singleMode = false,
93  const MetricType metric = MetricType());
94 
124  RangeSearch(TreeType* referenceTree,
125  TreeType* queryTree,
126  const typename TreeType::Mat& referenceSet,
127  const typename TreeType::Mat& querySet,
128  const bool singleMode = false,
129  const MetricType metric = MetricType());
130 
158  RangeSearch(TreeType* referenceTree,
159  const typename TreeType::Mat& referenceSet,
160  const bool singleMode = false,
161  const MetricType metric = MetricType());
162 
167  ~RangeSearch();
168 
195  void Search(const math::Range& range,
196  std::vector<std::vector<size_t> >& neighbors,
197  std::vector<std::vector<double> >& distances);
198 
199  // Returns a string representation of this object.
200  std::string ToString() const;
201 
202  private:
204  typename TreeType::Mat referenceCopy;
206  typename TreeType::Mat queryCopy;
207 
209  const typename TreeType::Mat& referenceSet;
211  const typename TreeType::Mat& querySet;
212 
214  TreeType* referenceTree;
216  TreeType* queryTree;
217 
219  std::vector<size_t> oldFromNewReferences;
221  std::vector<size_t> oldFromNewQueries;
222 
224  bool treeOwner;
228 
230  bool naive;
233 
235  MetricType metric;
236 
238  size_t numPrunes;
239 };
240 
241 }; // namespace range
242 }; // namespace mlpack
243 
244 // Include implementation.
245 #include "range_search_impl.hpp"
246 
247 #endif