14 #ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_PLUS_TREE_SPLIT_POLICY_HPP 15 #define MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_PLUS_TREE_SPLIT_POLICY_HPP 47 template<
typename TreeType>
50 const typename TreeType::ElemType cut)
52 if (child.AuxiliaryInfo().OuterBound()[axis].Hi() <= cut)
53 return AssignToFirstTree;
54 else if (child.AuxiliaryInfo().OuterBound()[axis].Lo() >= cut)
55 return AssignToSecondTree;
67 template<
typename TreeType>
72 return node.AuxiliaryInfo().OuterBound();
79 #endif // MLPACK_CORE_TREE_RECTANGLE_TREE_R_PLUS_PLUS_TREE_SPLIT_POLICY_HPP Linear algebra utility functions, generally performed on matrices or vectors.
static const bound::HRectBound< metric::EuclideanDistance, typename TreeType::ElemType > & Bound(const TreeType &node)
Return the maximum bounding rectangle of the node.
Hyper-rectangle bound for an L-metric.
The RPlusPlusTreeSplitPolicy helps to determine the subtree into which we should insert a child of an...
static const int AssignToFirstTree
Indicate that the child should be inserted to the first subtree.
static const int AssignToSecondTree
Indicate that the child should be inserted to the second subtree.
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.
static const int SplitRequired
Indicate that the child should be split.