Go to the documentation of this file.
14 #ifndef MLPACK_CORE_TREE_HRECTBOUND_HPP
15 #define MLPACK_CORE_TREE_HRECTBOUND_HPP
29 template<
typename MetricType>
32 static const bool Value =
false;
36 template<
int Power,
bool TakeRoot>
52 template<
typename MetricType = metric::LMetric<2, true>,
53 typename ElemType =
double>
58 "HRectBound can only be used with the LMetric<> metric type.");
92 size_t Dim()
const {
return dim; }
107 const MetricType&
Metric()
const {
return metric; }
116 void Center(arma::Col<ElemType>& center)
const;
130 template<
typename VecType>
147 template<
typename VecType>
173 template<
typename VecType>
175 const VecType& point,
185 template<
typename MatType>
198 template<
typename VecType>
231 template<
typename Archive>
232 void serialize(Archive& ar,
const unsigned int version);
246 template<
typename MetricType,
typename ElemType>
256 #include "hrectbound_impl.hpp"
258 #endif // MLPACK_CORE_TREE_HRECTBOUND_HPP
ElemType MinDistance(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Calculates minimum bound-to-point distance.
HRectBound & operator&=(const HRectBound &bound)
Intersects this bound with another.
const math::RangeType< ElemType > & operator[](const size_t i) const
Modify the range for a particular dimension. No bounds checking.
HRectBound()
Empty constructor; creates a bound of dimensionality 0.
The core includes that mlpack expects; standard C++ includes and Armadillo.
ElemType MaxDistance(const HRectBound &other) const
Computes maximum distance.
HRectBound & operator=(const HRectBound &other)
Same as copy constructor; necessary to prevent memory leaks.
math::RangeType< ElemType > & operator[](const size_t i)
Get the range for a particular dimension.
bool Contains(const HRectBound &bound) const
Determines if this bound partially contains a bound.
A class to obtain compile-time traits about BoundType classes.
const MetricType & Metric() const
Get the instantiated metric associated with the bound.
ElemType Overlap(const HRectBound &bound) const
Returns the volume of overlap of this bound and another.
ElemType & MinWidth()
Modify the minimum width of the bound.
MetricType & Metric()
Modify the instantiated metric associated with the bound.
bool Contains(const VecType &point) const
Determines if a point is within this bound.
Hyper-rectangle bound for an L-metric.
math::RangeType< ElemType > RangeDistance(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Calculates minimum and maximum bound-to-point distance.
Linear algebra utility functions, generally performed on matrices or vectors.
typename enable_if< B, T >::type enable_if_t
math::RangeType< ElemType > RangeDistance(const HRectBound &other) const
Calculates minimum and maximum bound-to-bound distance.
Definition of the Range class, which represents a simple range with a lower and upper bound.
HRectBound(const size_t dimension)
Initializes to specified dimensionality with each dimension the empty set.
void Center(arma::Col< ElemType > ¢er) const
Calculates the center of the range, placing it into the given vector.
ElemType MaxDistance(const VecType &point, typename std::enable_if_t< IsVector< VecType >::value > *=0) const
Calculates maximum bound-to-point squared distance.
void Clear()
Resets all dimensions to the empty set (so that this bound contains nothing).
void serialize(Archive &ar, const unsigned int version)
Serialize the bound object.
~HRectBound()
Destructor: clean up memory.
HRectBound & operator|=(const HRectBound &other)
Expands this region to encompass another bound.
HRectBound operator&(const HRectBound &bound) const
Returns the intersection of this bound and another.
static const bool HasTightBounds
If true, then the bounds for each dimension are tight.
HRectBound(HRectBound &&other)
Move constructor: take possession of another bound's information.
ElemType Volume() const
Calculate the volume of the hyperrectangle.
ElemType Diameter() const
Returns the diameter of the hyperrectangle (that is, the longest diagonal).
ElemType MinDistance(const HRectBound &other) const
Calculates minimum bound-to-bound distance.
ElemType MinWidth() const
Get the minimum width of the bound.
size_t Dim() const
Gets the dimensionality.
If value == true, then VecType is some sort of Armadillo vector or subview.
HRectBound & operator|=(const MatType &data)
Expands this region to include new points.
HRectBound(const HRectBound &other)
Copy constructor; necessary to prevent memory leaks.