12 #ifndef MLPACK_CORE_TREE_HOLLOW_BALL_BOUND_HPP 13 #define MLPACK_CORE_TREE_HOLLOW_BALL_BOUND_HPP 31 template<
typename TMetricType = metric::LMetric<2, true>,
32 typename ElemType =
double>
43 arma::Col<ElemType> center;
45 arma::Col<ElemType> hollowCenter;
75 template<
typename VecType>
77 const ElemType outerRadius,
78 const VecType& center);
106 const arma::Col<ElemType>&
Center()
const {
return center; }
108 arma::Col<ElemType>&
Center() {
return center; }
111 const arma::Col<ElemType>&
HollowCenter()
const {
return hollowCenter; }
116 size_t Dim()
const {
return center.n_elem; }
132 template<
typename VecType>
133 bool Contains(
const VecType& point)
const;
147 template<
typename VecType>
148 void Center(VecType& center)
const { center = this->center; }
155 template<
typename VecType>
172 template<
typename VecType>
190 template<
typename VecType>
192 const VecType& other,
213 template<
typename MatType>
232 const MetricType&
Metric()
const {
return *metric; }
237 template<
typename Archive>
238 void serialize(Archive& ar,
const uint32_t version);
242 template<
typename MetricType,
typename ElemType>
246 const static bool HasTightBounds =
false;
254 #endif // MLPACK_CORE_TREE_HOLLOW_BALL_BOUND_HPP T Lo() const
Get the lower bound.
Definition: range.hpp:61
arma::Col< ElemType > & HollowCenter()
Modify the center point of the hollow.
Definition: hollow_ball_bound.hpp:113
MetricType & Metric()
Modify the distance metric used in this bound.
Definition: hollow_ball_bound.hpp:234
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
A class to obtain compile-time traits about BoundType classes.
Definition: bound_traits.hpp:26
bool Contains(const VecType &point) const
Determines if a point is within this bound.
Definition: hollow_ball_bound_impl.hpp:163
Bounds that are useful for binary space partitioning trees.
The core includes that mlpack expects; standard C++ includes and Armadillo.
TMetricType MetricType
A public version of the metric type.
Definition: hollow_ball_bound.hpp:37
arma::Col< ElemType > & Center()
Modify the center point of the ball.
Definition: hollow_ball_bound.hpp:108
const arma::Col< ElemType > & HollowCenter() const
Get the center point of the hollow.
Definition: hollow_ball_bound.hpp:111
ElemType & OuterRadius()
Modify the outer radius of the ball.
Definition: hollow_ball_bound.hpp:98
HollowBallBound()
Empty Constructor.
Definition: hollow_ball_bound_impl.hpp:23
const arma::Col< ElemType > & Center() const
Get the center point of the ball.
Definition: hollow_ball_bound.hpp:106
const HollowBallBound & operator|=(const MatType &data)
Expand the bound to include the given point.
ElemType & InnerRadius()
Modify the inner radius of the ball.
Definition: hollow_ball_bound.hpp:103
ElemType OuterRadius() const
Get the outer radius of the ball.
Definition: hollow_ball_bound.hpp:96
~HollowBallBound()
Destructor to release allocated memory.
Definition: hollow_ball_bound_impl.hpp:141
ElemType MinWidth() const
Get the minimum width of the bound (this is same as the diameter).
Definition: hollow_ball_bound.hpp:122
math::RangeType< ElemType > operator[](const size_t i) const
Get the range in a certain dimension.
Definition: hollow_ball_bound_impl.hpp:149
void serialize(Archive &ar, const uint32_t version)
Serialize the bound.
Definition: hollow_ball_bound_impl.hpp:453
const MetricType & Metric() const
Returns the distance metric used in this bound.
Definition: hollow_ball_bound.hpp:232
HollowBallBound & operator=(const HollowBallBound &other)
For the same reason as the copy constructor: to prevent memory leaks.
Definition: hollow_ball_bound_impl.hpp:81
T Hi() const
Get the upper bound.
Definition: range.hpp:66
ElemType Diameter() const
Returns the diameter of the ballbound.
Definition: hollow_ball_bound.hpp:229
ElemType MaxDistance(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Computes maximum distance.
Definition: hollow_ball_bound_impl.hpp:280
ElemType InnerRadius() const
Get the innner radius of the ball.
Definition: hollow_ball_bound.hpp:101
ElemType MinDistance(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Calculates minimum bound-to-point squared distance.
Definition: hollow_ball_bound_impl.hpp:221
Hollow ball bound encloses a set of points at a specific distance (radius) from a specific point (cen...
Definition: hollow_ball_bound.hpp:33
math::RangeType< ElemType > RangeDistance(const VecType &other, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Calculates minimum and maximum bound-to-point distance.
Definition: hollow_ball_bound_impl.hpp:312
void Center(VecType ¢er) const
Place the center of BallBound into the given vector.
Definition: hollow_ball_bound.hpp:148
If value == true, then VecType is some sort of Armadillo vector or subview.
Definition: arma_traits.hpp:35
size_t Dim() const
Get the dimensionality of the ball.
Definition: hollow_ball_bound.hpp:116