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.