13 #ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_HILBERT_R_TREE_SPLIT_HPP 14 #define MLPACK_CORE_TREE_RECTANGLE_TREE_HILBERT_R_TREE_SPLIT_HPP 28 template<
size_t splitOrder = 2>
39 template<
typename TreeType>
40 static void SplitLeafNode(TreeType* tree, std::vector<bool>& relevels);
49 template<
typename TreeType>
62 template<
typename TreeType>
63 static bool FindCooperatingSiblings(TreeType* parent,
75 template<
typename TreeType>
76 static void RedistributeNodesEvenly(
const TreeType* parent,
77 const size_t firstSibling,
78 const size_t lastSibling);
87 template<
typename TreeType>
88 static void RedistributePointsEvenly(TreeType* parent,
89 const size_t firstSibling,
90 const size_t lastSibling);
97 #include "hilbert_r_tree_split_impl.hpp" Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
The splitting procedure for the Hilbert R tree.
static void SplitLeafNode(TreeType *tree, std::vector< bool > &relevels)
Split a leaf node using the "default" algorithm.
static bool SplitNonLeafNode(TreeType *tree, std::vector< bool > &relevels)
Split a non-leaf node using the "default" algorithm.