mlpack
master
|
Ball bound encloses a set of points at a specific distance (radius) from a specific point (center). More...
Public Types | |
typedef VecType::elem_type | ElemType |
The underlying data type. More... | |
typedef VecType | Vec |
A public version of the vector type. More... | |
Public Member Functions | |
BallBound () | |
Empty Constructor. More... | |
BallBound (const size_t dimension) | |
Create the ball bound with the specified dimensionality. More... | |
BallBound (const ElemType radius, const VecType ¢er) | |
Create the ball bound with the specified radius and center. More... | |
BallBound (const BallBound &other) | |
Copy constructor. To prevent memory leaks. More... | |
BallBound (BallBound &&other) | |
Move constructor: take possession of another bound. More... | |
~BallBound () | |
Destructor to release allocated memory. More... | |
const VecType & | Center () const |
Get the center point of the ball. More... | |
VecType & | Center () |
Modify the center point of the ball. More... | |
void | Center (VecType ¢er) const |
Place the center of BallBound into the given vector. More... | |
bool | Contains (const VecType &point) const |
Determines if a point is within this bound. More... | |
ElemType | Diameter () const |
Returns the diameter of the ballbound. More... | |
size_t | Dim () const |
Get the dimensionality of the ball. More... | |
template<typename OtherVecType > | |
ElemType | MaxDistance (const OtherVecType &point, typename std::enable_if_t< IsVector< OtherVecType >::value > *=0) const |
Computes maximum distance. More... | |
ElemType | MaxDistance (const BallBound &other) const |
Computes maximum distance. More... | |
const MetricType & | Metric () const |
Returns the distance metric used in this bound. More... | |
MetricType & | Metric () |
Modify the distance metric used in this bound. More... | |
template<typename OtherVecType > | |
ElemType | MinDistance (const OtherVecType &point, typename std::enable_if_t< IsVector< OtherVecType >::value > *=0) const |
Calculates minimum bound-to-point squared distance. More... | |
ElemType | MinDistance (const BallBound &other) const |
Calculates minimum bound-to-bound squared distance. More... | |
ElemType | MinWidth () const |
Get the minimum width of the bound (this is same as the diameter). More... | |
BallBound & | operator= (const BallBound &other) |
For the same reason as the copy constructor: to prevent memory leaks. More... | |
math::RangeType< ElemType > | operator[] (const size_t i) const |
Get the range in a certain dimension. More... | |
const BallBound & | operator|= (const BallBound &other) |
Expand the bound to include the given node. More... | |
template<typename MatType > | |
const BallBound & | operator|= (const MatType &data) |
Expand the bound to include the given point. More... | |
ElemType | Radius () const |
Get the radius of the ball. More... | |
ElemType & | Radius () |
Modify the radius of the ball. More... | |
template<typename OtherVecType > | |
math::RangeType< ElemType > | RangeDistance (const OtherVecType &other, typename std::enable_if_t< IsVector< OtherVecType >::value > *=0) const |
Calculates minimum and maximum bound-to-point distance. More... | |
math::RangeType< ElemType > | RangeDistance (const BallBound &other) const |
Calculates minimum and maximum bound-to-bound distance. More... | |
template<typename Archive > | |
void | Serialize (Archive &ar, const unsigned int version) |
Serialize the bound. More... | |
Private Attributes | |
VecType | center |
The center of the ball bound. More... | |
MetricType * | metric |
The metric used in this bound. More... | |
bool | ownsMetric |
To know whether this object allocated memory to the metric member variable. More... | |
ElemType | radius |
The radius of the ball bound. More... | |
Ball bound encloses a set of points at a specific distance (radius) from a specific point (center).
MetricType is the custom metric type that defaults to the Euclidean (L2) distance.
MetricType | metric type used in the distance measure. |
VecType | Type of vector (arma::vec or arma::sp_vec or similar). |
Definition at line 32 of file ballbound.hpp.
typedef VecType::elem_type mlpack::bound::BallBound< MetricType, VecType >::ElemType |
The underlying data type.
Definition at line 36 of file ballbound.hpp.
typedef VecType mlpack::bound::BallBound< MetricType, VecType >::Vec |
A public version of the vector type.
Definition at line 38 of file ballbound.hpp.
mlpack::bound::BallBound< MetricType, VecType >::BallBound | ( | ) |
Empty Constructor.
mlpack::bound::BallBound< MetricType, VecType >::BallBound | ( | const size_t | dimension | ) |
Create the ball bound with the specified dimensionality.
dimension | Dimensionality of ball bound. |
mlpack::bound::BallBound< MetricType, VecType >::BallBound | ( | const ElemType | radius, |
const VecType & | center | ||
) |
Create the ball bound with the specified radius and center.
radius | Radius of ball bound. |
center | Center of ball bound. |
mlpack::bound::BallBound< MetricType, VecType >::BallBound | ( | const BallBound< MetricType, VecType > & | other | ) |
Copy constructor. To prevent memory leaks.
mlpack::bound::BallBound< MetricType, VecType >::BallBound | ( | BallBound< MetricType, VecType > && | other | ) |
Move constructor: take possession of another bound.
mlpack::bound::BallBound< MetricType, VecType >::~BallBound | ( | ) |
Destructor to release allocated memory.
|
inline |
Get the center point of the ball.
Definition at line 94 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::center.
Referenced by mlpack::tree::ProjVector::Project().
|
inline |
Modify the center point of the ball.
Definition at line 96 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::center.
|
inline |
Place the center of BallBound into the given vector.
center | Vector which the centroid will be written to. |
Definition at line 120 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::center, mlpack::bound::BallBound< MetricType, VecType >::MaxDistance(), mlpack::bound::BallBound< MetricType, VecType >::MinDistance(), mlpack::bound::BallBound< MetricType, VecType >::operator|=(), and mlpack::bound::BallBound< MetricType, VecType >::RangeDistance().
bool mlpack::bound::BallBound< MetricType, VecType >::Contains | ( | const VecType & | point | ) | const |
Determines if a point is within this bound.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::MinWidth().
|
inline |
Returns the diameter of the ballbound.
Definition at line 182 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::radius.
|
inline |
Get the dimensionality of the ball.
Definition at line 99 of file ballbound.hpp.
ElemType mlpack::bound::BallBound< MetricType, VecType >::MaxDistance | ( | const OtherVecType & | point, |
typename std::enable_if_t< IsVector< OtherVecType >::value > * | = 0 |
||
) | const |
Computes maximum distance.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Center().
ElemType mlpack::bound::BallBound< MetricType, VecType >::MaxDistance | ( | const BallBound< MetricType, VecType > & | other | ) | const |
Computes maximum distance.
|
inline |
Returns the distance metric used in this bound.
Definition at line 185 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::metric.
|
inline |
Modify the distance metric used in this bound.
Definition at line 187 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::metric, and mlpack::bound::BallBound< MetricType, VecType >::Serialize().
ElemType mlpack::bound::BallBound< MetricType, VecType >::MinDistance | ( | const OtherVecType & | point, |
typename std::enable_if_t< IsVector< OtherVecType >::value > * | = 0 |
||
) | const |
Calculates minimum bound-to-point squared distance.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Center().
ElemType mlpack::bound::BallBound< MetricType, VecType >::MinDistance | ( | const BallBound< MetricType, VecType > & | other | ) | const |
Calculates minimum bound-to-bound squared distance.
|
inline |
Get the minimum width of the bound (this is same as the diameter).
For ball bounds, width along all dimensions remain same.
Definition at line 105 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::Contains(), and mlpack::bound::BallBound< MetricType, VecType >::operator[]().
BallBound& mlpack::bound::BallBound< MetricType, VecType >::operator= | ( | const BallBound< MetricType, VecType > & | other | ) |
For the same reason as the copy constructor: to prevent memory leaks.
math::RangeType<ElemType> mlpack::bound::BallBound< MetricType, VecType >::operator[] | ( | const size_t | i | ) | const |
Get the range in a certain dimension.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::MinWidth().
const BallBound& mlpack::bound::BallBound< MetricType, VecType >::operator|= | ( | const BallBound< MetricType, VecType > & | other | ) |
Expand the bound to include the given node.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Center().
const BallBound& mlpack::bound::BallBound< MetricType, VecType >::operator|= | ( | const MatType & | data | ) |
Expand the bound to include the given point.
The centroid is recalculated to be the center of all of the given points.
MatType | Type of matrix; could be arma::mat, arma::spmat, or a vector. |
data | Data points to add. |
|
inline |
Get the radius of the ball.
Definition at line 89 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::radius.
Referenced by mlpack::tree::ProjVector::Project().
|
inline |
Modify the radius of the ball.
Definition at line 91 of file ballbound.hpp.
References mlpack::bound::BallBound< MetricType, VecType >::radius.
math::RangeType<ElemType> mlpack::bound::BallBound< MetricType, VecType >::RangeDistance | ( | const OtherVecType & | other, |
typename std::enable_if_t< IsVector< OtherVecType >::value > * | = 0 |
||
) | const |
Calculates minimum and maximum bound-to-point distance.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Center().
math::RangeType<ElemType> mlpack::bound::BallBound< MetricType, VecType >::RangeDistance | ( | const BallBound< MetricType, VecType > & | other | ) | const |
Calculates minimum and maximum bound-to-bound distance.
Example: bound1.MinDistanceSq(other) for minimum distance.
void mlpack::bound::BallBound< MetricType, VecType >::Serialize | ( | Archive & | ar, |
const unsigned int | version | ||
) |
Serialize the bound.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Metric().
|
private |
The center of the ball bound.
Definition at line 44 of file ballbound.hpp.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Center().
|
private |
The metric used in this bound.
Definition at line 46 of file ballbound.hpp.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Metric().
|
private |
To know whether this object allocated memory to the metric member variable.
This will be true except in the copy constructor and the overloaded assignment operator. We need this to know whether we should delete the metric member variable in the destructor.
Definition at line 54 of file ballbound.hpp.
|
private |
The radius of the ball bound.
Definition at line 42 of file ballbound.hpp.
Referenced by mlpack::bound::BallBound< MetricType, VecType >::Diameter(), and mlpack::bound::BallBound< MetricType, VecType >::Radius().