13 #ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_HPP 14 #define MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_HPP 30 template<
typename SplitPolicyType,
31 template<
typename>
class SweepType>
42 template<
typename TreeType>
43 static void SplitLeafNode(TreeType* tree, std::vector<bool>& relevels);
51 template<
typename TreeType>
64 template<
typename TreeType>
70 const typename TreeType::ElemType cut);
82 template<
typename TreeType>
88 const typename TreeType::ElemType cut);
101 template<
typename TreeType>
102 static void AddFakeNodes(
const TreeType* tree, TreeType* emptyTree);
116 template<
typename TreeType>
119 typename TreeType::ElemType& minCut);
124 template<
typename TreeType>
132 #include "r_plus_tree_split_impl.hpp" 134 #endif // MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_HPP static bool SplitNonLeafNode(TreeType *tree, std::vector< bool > &relevels)
Split a non-leaf node using the "default" algorithm.
SplitPolicyType SplitPolicy
The RPlusTreeSplit class performs the split process of a node on overflow.
static void SplitLeafNode(TreeType *tree, std::vector< bool > &relevels)
Split a leaf node using the "default" algorithm.
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
static void SplitLeafNodeAlongPartition(TreeType *tree, TreeType *treeOne, TreeType *treeTwo, const size_t cutAxis, const typename TreeType::ElemType cut)
Split a leaf node along an axis.
static void InsertNodeIntoTree(TreeType *destTree, TreeType *srcNode)
Insert a node into another node.
static void AddFakeNodes(const TreeType *tree, TreeType *emptyTree)
This method is used to make sure that the tree has equivalent maximum depth in every branch...
static void SplitNonLeafNodeAlongPartition(TreeType *tree, TreeType *treeOne, TreeType *treeTwo, const size_t cutAxis, const typename TreeType::ElemType cut)
Split a non-leaf node along an axis.
static bool PartitionNode(const TreeType *node, size_t &minCutAxis, typename TreeType::ElemType &minCut)
Partition a node using SweepType.