mlpack 3.4.2
x_tree_split.hpp
Go to the documentation of this file.
1
15#ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_X_TREE_SPLIT_HPP
16#define MLPACK_CORE_TREE_RECTANGLE_TREE_X_TREE_SPLIT_HPP
17
18#include <mlpack/prereqs.hpp>
19
20namespace mlpack {
21namespace tree {
22
29const double MAX_OVERLAP = 0.2;
30
37{
38 public:
44 template<typename TreeType>
45 static void SplitLeafNode(TreeType *tree, std::vector<bool>& relevels);
46
51 template<typename TreeType>
52 static bool SplitNonLeafNode(TreeType *tree, std::vector<bool>& relevels);
53
54 private:
58 template<typename TreeType>
59 static void InsertNodeIntoTree(TreeType* destTree, TreeType* srcNode);
60
65 template<typename ElemType, typename SecondType>
66 static bool PairComp(const std::pair<ElemType, SecondType>& p1,
67 const std::pair<ElemType, SecondType>& p2)
68 {
69 return p1.first < p2.first;
70 }
71};
72
73} // namespace tree
74} // namespace mlpack
75
76// Include implementation
77#include "x_tree_split_impl.hpp"
78
79#endif
A Rectangle Tree has new points inserted at the bottom.
static bool SplitNonLeafNode(TreeType *tree, std::vector< bool > &relevels)
Split a non-leaf node using the "default" algorithm.
static void SplitLeafNode(TreeType *tree, std::vector< bool > &relevels)
Split a leaf node using the algorithm described in "The R*-tree: An Efficient and Robust Access metho...
const double MAX_OVERLAP
The X-tree paper says that a maximum allowable overlap of 20% works well.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.