15 #ifndef MLPACK_CORE_TREE_BINARY_SPACE_TREE_MIDPOINT_SPLIT_HPP    16 #define MLPACK_CORE_TREE_BINARY_SPACE_TREE_MIDPOINT_SPLIT_HPP    29 template<
typename BoundType, 
typename MatType = arma::mat>
    54   static bool SplitNode(
const BoundType& bound,
    77     return split::PerformSplit<MatType, MidpointSplit>(data, begin, count,
   100                              std::vector<size_t>& oldFromNew)
   102     return split::PerformSplit<MatType, MidpointSplit>(data, begin, count,
   103         splitInfo, oldFromNew);
   112   template<
typename VecType>
   124 #include "midpoint_split_impl.hpp" Linear algebra utility functions, generally performed on matrices or vectors. 
 
double splitVal
The split in dimension splitDimension is based on this value. 
 
static bool SplitNode(const BoundType &bound, MatType &data, const size_t begin, const size_t count, SplitInfo &splitInfo)
Find the partition of the node. 
 
The core includes that mlpack expects; standard C++ includes and Armadillo. 
 
A binary space partitioning tree node is split into its left and right child. 
 
static size_t PerformSplit(MatType &data, const size_t begin, const size_t count, const SplitInfo &splitInfo)
Perform the split process according to the information about the split. 
 
A struct that contains an information about the split. 
 
static bool AssignToLeftNode(const VecType &point, const SplitInfo &splitInfo)
Indicates that a point should be assigned to the left subtree. 
 
size_t splitDimension
The dimension to split the node on. 
 
static size_t PerformSplit(MatType &data, const size_t begin, const size_t count, const SplitInfo &splitInfo, std::vector< size_t > &oldFromNew)
Perform the split process according to the information about the split and return the list of changed...