MLPACK  1.0.11
example_tree.hpp
Go to the documentation of this file.
1 
24 #ifndef __MLPACK_CORE_TREE_EXAMPLE_TREE_HPP
25 #define __MLPACK_CORE_TREE_EXAMPLE_TREE_HPP
26 
27 namespace mlpack {
28 namespace tree {
29 
63 template<typename MetricType = metric::LMetric<2, true>,
64  typename StatisticType = EmptyStatistic,
65  typename MatType = arma::mat>
67 {
68  public:
89  ExampleTree(const MatType& dataset,
90  MetricType& metric);
91 
93  size_t NumChildren() const;
94 
96  const ExampleTree& Child(const size_t i) const;
98  ExampleTree& Child(const size_t i);
99 
101  ExampleTree* Parent() const;
102 
104  size_t NumPoints() const;
105 
116  size_t Point(const size_t i) const;
117 
125  size_t NumDescendants() const;
126 
133  size_t Descendant(const size_t i) const;
134 
136  const StatisticType& Stat() const;
138  StatisticType& Stat();
139 
141  const MetricType& Metric() const;
143  MetricType& Metric();
144 
153  double MinDistance(const MatType& point) const;
154 
163  double MinDistance(const ExampleTree& other) const;
164 
173  double MaxDistance(const MatType& point) const;
174 
183  double MaxDistance(const ExampleTree& other) const;
184 
196  math::Range RangeDistance(const MatType& point) const;
197 
209  math::Range RangeDistance(const ExampleTree& other) const;
210 
216  void Centroid(arma::vec& centroid) const;
217 
224  double FurthestDescendantDistance() const;
225 
230  double ParentDistance() const;
231 
232  private:
235  StatisticType stat;
236 
244  MetricType& metric;
245 };
246 
247 }; // namespace tree
248 }; // namespace mlpack
249 
250 #endif
size_t NumChildren() const
Return the number of children of this node.
void Centroid(arma::vec &centroid) const
Fill the given vector with the center of the node.
This is not an actual space tree but instead an example tree that exists to show and document all the...
size_t NumDescendants() const
Get the number of descendant points.
double ParentDistance() const
Get the distance from the center of this node to the center of the parent node.
double FurthestDescendantDistance() const
Get the distance from the center of the node to the furthest descendant point of this node...
ExampleTree * Parent() const
Return the parent node (NULL if this is the root of the tree).
MetricType & metric
This member is just here so the ExampleTree compiles without warnings.
double MinDistance(const MatType &point) const
Return the minimum distance between this node and a point.
const MetricType & Metric() const
Get the instantiated metric for this node.
double MaxDistance(const MatType &point) const
Return the maximum distance between this node and a point.
ExampleTree(const MatType &dataset, MetricType &metric)
This constructor will build the tree given a dataset and an instantiated metric.
math::Range RangeDistance(const MatType &point) const
Return both the minimum and maximum distances between this node and a point as a math::Range object...
size_t NumPoints() const
Return the number of points held in this node.
StatisticType stat
This member is just here so the ExampleTree compiles without warnings.
const ExampleTree & Child(const size_t i) const
Return a particular child of this node.
size_t Point(const size_t i) const
Return the index of a particular point of this node.
Simple real-valued range.
Definition: range.hpp:31
const StatisticType & Stat() const
Get the statistic for this node.
size_t Descendant(const size_t i) const
Get the index of a particular descendant point.