CGAL 6.1.1 - dD Spatial Searching

Loading...
Searching...
No Matches
List of all members
CGAL::Weighted_Minkowski_distance< Traits > Class Template Reference
Reference Manual » Distance Classes

`#include <CGAL/Weighted_Minkowski_distance.h>`

## Definition

template<typename Traits>
class CGAL::Weighted_Minkowski_distance< Traits >

The class `Weighted_Minkowski_distance` provides an implementation of the concept `OrthogonalDistance`, with a weighted Minkowski metric on \( d\)-dimensional points defined by \( l_p(w)(r,q)= ({\Sigma_{i=1}^{i=d} \, w_i(r_i-q_i)^p})^{1/p}\) for \( 0 < p <\infty\) and defined by \( l_{\infty}(w)(r,q)=max \{w_i |r_i-q_i| \mid 1 \leq i \leq d\}\).

For the purpose of the distance computations it is more efficient to compute the transformed distance \( {\sigma_{i=1}^{i=d} \, w_i(r_i-q_i)^p}\) instead of the actual distance.

Note
  As this distance involves the computation of a power it is not done exact but with floating point arithmetic.

Template Parameters

  Traits | must be a model of the concept `SearchTraits`, for example `Search_traits_2`.

Is model of
  `OrthogonalDistance`

See also
  `OrthogonalDistance`
  `CGAL::Euclidean_distance<Traits>`

Examples
  Spatial_searching/weighted_Minkowski_distance.cpp.

## Types
typedef Traits::Dimension | D
| Dimension tag.
typedef Traits::FT | FT
| Number type.
typedef Traits::Point_d | Point_d
| Point type.

## Creation
| Weighted_Minkowski_distance (int d, Traits t=Traits())
| Constructor implementing \( l_2\) metric for \( d\)-dimensional points.
template<class InputIterator >
| Weighted_Minkowski_distance (FT power, int dim, InputIterator wb, InputIterator we, Traits t=Traits())
| Constructor implementing the \( l_{power}(weights)\) metric.

## Operations
FT | transformed_distance (Point_d q, Point_d r) const
| Returns \( d^{power}\), where \( d\) denotes the distance between `q` and `r`.
FT | min_distance_to_rectangle (Point_d q, Kd_tree_rectangle< FT, D > r) const
| Returns \( d^{power}\), where \( d\) denotes the distance between the query item `q` and the point on the boundary of `r` closest to `q`.
FT | min_distance_to_rectangle (Point_d q, Kd_tree_rectangle< FT, D > r, vector< FT > &dists)
| Returns \( d^{power}\), where \( d\) denotes the distance between the query item `q` and the point on the boundary of `r` closest to `q`.
FT | max_distance_to_rectangle (Point_d q, Kd_tree_rectangle< FT, D > r) const
| Returns \( d^{power}\), where \( d\) denotes the distance between the query item `q` and the point on the boundary of `r` farthest to `q`.
FT | max_distance_to_rectangle (Point_d q, Kd_tree_rectangle< FT, D > r, vector< FT > &dists)
| Returns \( d^{power}\), where \( d\) denotes the distance between the query item `q` and the point on the boundary of `r` farthest to `q`.
FT | new_distance (FT dist, FT old_off, FT new_off, int cutting_dimension) const
| Updates `dist` incrementally and returns the updated distance.
FT | transformed_distance (FT d) const
| Returns \( d^p\) for \( 0 < p <\infty\) .
FT | inverse_of_transformed_distance (FT d) const
| Returns \( d^{1/p}\) for \( 0 < p <\infty\).

## Constructor & Destructor Documentation

## ◆ Weighted_Minkowski_distance()

template<typename Traits >
template<class InputIterator >

CGAL::Weighted_Minkowski_distance< Traits >::Weighted_Minkowski_distance | ( | FT | power,
|  | int | dim,
|  | InputIterator | wb,
|  | InputIterator | we,
|  | Traits | t = `Traits()`
| ) |  |

Constructor implementing the \( l_{power}(weights)\) metric.

`power=0` denotes the \( l_{\infty}(weights)\) metric. The values in the iterator range `[wb,we)` are the weight.

## Member Function Documentation

## ◆ inverse_of_transformed_distance()

template<typename Traits >

FT CGAL::Weighted_Minkowski_distance< Traits >::inverse_of_transformed_distance | ( | FT | d | ) | const

Returns \( d^{1/p}\) for \( 0 < p <\infty\).

Returns \( d\) for \( p=\infty\).

## ◆ max_distance_to_rectangle()

template<typename Traits >

FT CGAL::Weighted_Minkowski_distance< Traits >::max_distance_to_rectangle | ( | Point_d | q,
|  | Kd_tree_rectangle< FT, D > | r,
|  | vector< FT > & | dists
| ) |  |

Returns \( d^{power}\), where \( d\) denotes the distance between the query item `q` and the point on the boundary of `r` farthest to `q`.

Stores the distances in each dimension in `dists`.

## ◆ min_distance_to_rectangle()

template<typename Traits >

FT CGAL::Weighted_Minkowski_distance< Traits >::min_distance_to_rectangle | ( | Point_d | q,
|  | Kd_tree_rectangle< FT, D > | r,
|  | vector< FT > & | dists
| ) |  |

Returns \( d^{power}\), where \( d\) denotes the distance between the query item `q` and the point on the boundary of `r` closest to `q`.

Stores the distances in each dimension in `dists`.

## ◆ transformed_distance()

template<typename Traits >

FT CGAL::Weighted_Minkowski_distance< Traits >::transformed_distance | ( | FT | d | ) | const

Returns \( d^p\) for \( 0 < p <\infty\) .

Returns \( d\) for \( p=\infty\) .