Minkowski distance

The Minkowski distances are the set of distance metrics with different degree \((p > 0)\) and are widely used for distance computation in different algorithms. The most commonly used distance metric, Euclidean distance, is also a Minkowski distance with \(p = 2.0\).


Computational methods



Mathematical formulation

Refer to Developer Guide: Minkowski distance.

Programming Interface

All types and functions in this section are declared in the oneapi::dal::minkowski_distance namespace.


template<typename Float = float, typename Method = method::by_default, typename Task = task::by_default>
class descriptor
Template Parameters
  • Float – The floating-point type that the algorithm uses for intermediate computations. Can be float or double.

  • Method – Tag-type that specifies an the implementation of the algorithm. Can be method::dense.

  • Task – Tag-type that specifies the type of the problem to solve. Can be task::compute.


descriptor() = default

Creates a new instance of the class with the default property values.

descriptor(double degree)

Creates a new instance of the class with the external property values.


double degree

The coefficient \(p\) of the Minkowski distance. Default value: 2.0.

Getter & Setter
double get_degree() const
auto & set_degree(double value)

Method tags

struct dense
using by_default = dense

Alias tag-type for the dense method.

Task tags

struct compute

Tag-type that parameterizes entities that are used to compute distances.

using by_default = compute

Alias tag-type for the compute task.