Go to the documentation of this file.
12 #ifndef MLPACK_CORE_TREE_SPILL_TREE_HYPERPLANE_HPP
13 #define MLPACK_CORE_TREE_SPILL_TREE_HYPERPLANE_HPP
29 template<
typename BoundT,
typename ProjVectorT>
70 template<
typename VecType>
74 if (splitVal == DBL_MAX)
76 return projVect.Project(point) - splitVal;
85 template<
typename VecType>
86 bool Left(
const VecType& point,
98 template<
typename VecType>
99 bool Right(
const VecType& point,
112 if (splitVal == DBL_MAX)
114 return projVect.Project(bound).Hi() <= splitVal;
124 if (splitVal == DBL_MAX)
126 return projVect.Project(bound).Lo() > splitVal;
132 template<
typename Archive>
135 ar & BOOST_SERIALIZATION_NVP(projVect);
136 ar & BOOST_SERIALIZATION_NVP(splitVal);
143 template<
typename MetricType>
150 template<
typename MetricType>
AxisParallelProjVector defines an axis-parallel projection vector.
The core includes that mlpack expects; standard C++ includes and Armadillo.
void serialize(Archive &ar, const unsigned int)
Serialization.
HyperplaneBase()
Empty Constructor.
double Project(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Project the given point on the projection vector and subtract the split value.
Linear algebra utility functions, generally performed on matrices or vectors.
BoundT BoundType
Useful typedef for the bound type.
typename enable_if< B, T >::type enable_if_t
HyperplaneBase defines a splitting hyperplane based on a projection vector and projection value.
ProjVectorT ProjVectorType
Useful typedef for the projection vector type.
bool Right(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Determine if the given point is to the right of the hyperplane, this means if the projection over the...
HyperplaneBase(const ProjVectorType &projVect, double splitVal)
Create the hyperplane with the specified projection vector and split value.
bool Right(const BoundType &bound) const
Determine if the given bound is to the right of the hyperplane.
ProjVector defines a general projection vector (not necessarily axis-parallel).
bool Left(const BoundType &bound) const
Determine if the given bound is to the left of the hyperplane.
bool Left(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Determine if the given point is to the left of the hyperplane, this means if the projection over the ...
If value == true, then VecType is some sort of Armadillo vector or subview.