mlpack 3.4.2
Loading...
Searching...
No Matches
minimal_coverage_sweep.hpp
Go to the documentation of this file.
1
13#ifndef MLPACK_CORE_TREE_RECTANGLE_TREE_MINIMAL_COVERAGE_SWEEP_HPP
14#define MLPACK_CORE_TREE_RECTANGLE_TREE_MINIMAL_COVERAGE_SWEEP_HPP
15
16namespace mlpack {
17namespace tree {
18
29template<typename SplitPolicy>
31{
32 public:
34 template<typename TreeType>
35 struct SweepCost
36 {
37 typedef typename TreeType::ElemType type;
38 };
39
48 template<typename TreeType>
49 static typename TreeType::ElemType SweepNonLeafNode(
50 const size_t axis,
51 const TreeType* node,
52 typename TreeType::ElemType& axisCut);
53
62 template<typename TreeType>
63 static typename TreeType::ElemType SweepLeafNode(
64 const size_t axis,
65 const TreeType* node,
66 typename TreeType::ElemType& axisCut);
67
76 template<typename TreeType, typename ElemType>
77 static bool CheckNonLeafSweep(const TreeType* node,
78 const size_t cutAxis,
79 const ElemType cut);
80
89 template<typename TreeType, typename ElemType>
90 static bool CheckLeafSweep(const TreeType* node,
91 const size_t cutAxis,
92 const ElemType cut);
93};
94
95} // namespace tree
96} // namespace mlpack
97
98// Include implementation
99#include "minimal_coverage_sweep_impl.hpp"
100
101#endif // MLPACK_CORE_TREE_RECTANGLE_TREE_MINIMAL_COVERAGE_SWEEP_HPP
102
The MinimalCoverageSweep class finds a partition along which we can split a node according to the cov...
static TreeType::ElemType SweepNonLeafNode(const size_t axis, const TreeType *node, typename TreeType::ElemType &axisCut)
Find a suitable partition of a non-leaf node along the provided axis.
static TreeType::ElemType SweepLeafNode(const size_t axis, const TreeType *node, typename TreeType::ElemType &axisCut)
Find a suitable partition of a leaf node along the provided axis.
static bool CheckLeafSweep(const TreeType *node, const size_t cutAxis, const ElemType cut)
Check if a leaf node can be split along the axis at the provided coordinate.
static bool CheckNonLeafSweep(const TreeType *node, const size_t cutAxis, const ElemType cut)
Check if an intermediate node can be split along the axis at the provided coordinate.
Linear algebra utility functions, generally performed on matrices or vectors.
A struct that provides the type of the sweep cost.