space_split.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_CORE_TREE_SPILL_TREE_SPACE_SPLIT_HPP
14 #define MLPACK_CORE_TREE_SPILL_TREE_SPACE_SPLIT_HPP
15 
16 #include <mlpack/prereqs.hpp>
17 #include "hyperplane.hpp"
18 
19 namespace mlpack {
20 namespace tree {
21 
22 template<typename MetricType, typename MatType>
24 {
25  public:
38  static bool GetProjVector(
39  const bound::HRectBound<MetricType>& bound,
40  const MatType& data,
41  const arma::Col<size_t>& points,
42  AxisParallelProjVector& projVector,
43  double& midValue);
44 
57  template<typename BoundType>
58  static bool GetProjVector(
59  const BoundType& bound,
60  const MatType& data,
61  const arma::Col<size_t>& points,
62  ProjVector& projVector,
63  double& midValue);
64 };
65 
66 } // namespace tree
67 } // namespace mlpack
68 
69 // Include implementation.
70 #include "space_split_impl.hpp"
71 
72 #endif
AxisParallelProjVector defines an axis-parallel projection vector.
Linear algebra utility functions, generally performed on matrices or vectors.
static bool GetProjVector(const bound::HRectBound< MetricType > &bound, const MatType &data, const arma::Col< size_t > &points, AxisParallelProjVector &projVector, double &midValue)
Create a projection vector based on the given set of point.
The core includes that mlpack expects; standard C++ includes and Armadillo.
ProjVector defines a general projection vector (not necessarily axis-parallel).