14 #ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_POLICY_HPP
15 #define MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_POLICY_HPP
47 template<
typename TreeType>
50 const typename TreeType::ElemType cut)
52 if (child.Bound()[axis].Hi() <= cut)
54 else if (child.Bound()[axis].Lo() >= cut)
67 template<
typename TreeType>
79 #endif // MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_TREE_SPLIT_POLICY_HPP
static const int AssignToSecondTree
Indicate that the child should be inserted to the second subtree.
static const int SplitRequired
Indicate that the child should be split.
Hyper-rectangle bound for an L-metric.
static const int AssignToFirstTree
Indicate that the child should be inserted to the first subtree.
static const bound::HRectBound< metric::EuclideanDistance, typename TreeType::ElemType > & Bound(const TreeType &node)
Return the minimum bounding rectangle of the node.
static int GetSplitPolicy(const TreeType &child, const size_t axis, const typename TreeType::ElemType cut)
This method returns SplitRequired if a child of an intermediate node should be split, AssignToFirstTree if the child should be inserted to the first subtree, AssignToSecondTree if the child should be inserted to the second subtree.
The RPlusPlusTreeSplitPolicy helps to determine the subtree into which we should insert a child of an...