13#ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_HPP
14#define MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_HPP
30template<
typename SplitPolicyType,
31 template<
typename>
class SweepType>
42 template<
typename TreeType>
51 template<
typename TreeType>
64 template<
typename TreeType>
65 static void SplitLeafNodeAlongPartition(
70 const typename TreeType::ElemType cut);
82 template<
typename TreeType>
83 static void SplitNonLeafNodeAlongPartition(
88 const typename TreeType::ElemType cut);
101 template<
typename TreeType>
102 static void AddFakeNodes(
const TreeType* tree, TreeType* emptyTree);
116 template<
typename TreeType>
117 static bool PartitionNode(
const TreeType* node,
119 typename TreeType::ElemType& minCut);
124 template<
typename TreeType>
125 static void InsertNodeIntoTree(TreeType* destTree, TreeType* srcNode);
132#include "r_plus_tree_split_impl.hpp"
The RPlusTreeSplit class performs the split process of a node on overflow.
SplitPolicyType SplitPolicy
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 "default" algorithm.
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.