neighbor_search_stat.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_STAT_HPP
14 #define MLPACK_METHODS_NEIGHBOR_SEARCH_NEIGHBOR_SEARCH_STAT_HPP
15 
16 #include <mlpack/prereqs.hpp>
17 
18 namespace mlpack {
19 namespace neighbor {
20 
25 template<typename SortPolicy>
27 {
28  private:
31  double firstBound;
36  double secondBound;
39  double auxBound;
41  double lastDistance;
42 
43  public:
49  firstBound(SortPolicy::WorstDistance()),
50  secondBound(SortPolicy::WorstDistance()),
51  auxBound(SortPolicy::WorstDistance()),
52  lastDistance(0.0) { }
53 
58  template<typename TreeType>
59  NeighborSearchStat(TreeType& /* node */) :
60  firstBound(SortPolicy::WorstDistance()),
61  secondBound(SortPolicy::WorstDistance()),
62  auxBound(SortPolicy::WorstDistance()),
63  lastDistance(0.0) { }
64 
68  void Reset()
69  {
70  firstBound = SortPolicy::WorstDistance();
71  secondBound = SortPolicy::WorstDistance();
72  auxBound = SortPolicy::WorstDistance();
73  lastDistance = 0.0;
74  }
75 
77  double FirstBound() const { return firstBound; }
79  double& FirstBound() { return firstBound; }
81  double SecondBound() const { return secondBound; }
83  double& SecondBound() { return secondBound; }
85  double AuxBound() const { return auxBound; }
87  double& AuxBound() { return auxBound; }
89  double LastDistance() const { return lastDistance; }
91  double& LastDistance() { return lastDistance; }
92 
94  template<typename Archive>
95  void serialize(Archive& ar, const uint32_t /* version */)
96  {
97  ar(CEREAL_NVP(firstBound));
98  ar(CEREAL_NVP(secondBound));
99  ar(CEREAL_NVP(auxBound));
100  ar(CEREAL_NVP(lastDistance));
101  }
102 };
103 
104 } // namespace neighbor
105 } // namespace mlpack
106 
107 #endif
void serialize(Archive &ar, const uint32_t)
Serialize the statistic to/from an archive.
double & FirstBound()
Modify the first bound.
double & SecondBound()
Modify the second bound.
Linear algebra utility functions, generally performed on matrices or vectors.
double & AuxBound()
Modify the aux bound.
Extra data for each node in the tree.
The core includes that mlpack expects; standard C++ includes and Armadillo.
double LastDistance() const
Get the last distance calculation.
double SecondBound() const
Get the second bound.
double & LastDistance()
Modify the last distance calculation.
void Reset()
Reset statistic parameters to initial values.
double FirstBound() const
Get the first bound.
double AuxBound() const
Get the aux bound.
NeighborSearchStat(TreeType &)
Initialization for a fully initialized node.
NeighborSearchStat()
Initialize the statistic with the worst possible distance according to our sorting policy...