﻿ Minkowski Structure   Minkowski Structure

The Minkowski distance is a metric in a normed vector space which can be considered as a generalization of both the Euclidean distance and the Manhattan distance.

Namespace:  Accord.Math.Distances
Assembly:  Accord.Math (in Accord.Math.dll) Version: 3.8.0 Syntax
[SerializableAttribute]
public struct Minkowski : IMetric<double[]>,
IDistance<double[]>, IDistance<double[], double[]>,
IMetric<int[]>, IDistance<int[]>, IDistance<int[], int[]>

The Minkowski type exposes the following members. Constructors
NameDescription Minkowski
Initializes a new instance of the Minkowski class.
Top Properties
NameDescription Order
Gets the order p of this Minkowski distance.
Top Methods
NameDescription Distance(Double, Double)
Computes the distance d(x,y) between points x and y. Distance(Int32, Int32)
Computes the distance d(x,y) between points x and y. Equals
Indicates whether this instance and a specified object are equal.
(Inherited from ValueType.) GetHashCode
Returns the hash code for this instance.
(Inherited from ValueType.) GetType
Gets the Type of the current instance.
(Inherited from Object.)  Nonmetric
Creates a non-metric Minkowski distance, bypassing argument checking. Use at your own risk. ToString
Returns the fully qualified type name of this instance.
(Inherited from ValueType.)
Top Fields
NameDescription  Euclidean
Gets the Euclidean distance as a special case of the Minkowski distance.  Manhattan
Gets the Manhattan distance as a special case of the Minkowski distance.
Top Extension Methods
NameDescription HasMethod
Checks whether an object implements a method with the given name.
(Defined by ExtensionMethods.) IsEqual
Compares two objects for equality, performing an elementwise comparison if the elements are vectors or matrices.
(Defined by Matrix.) To(Type)Overloaded.
Converts an object into another type, irrespective of whether the conversion can be done at compile time or not. This can be used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) ToTOverloaded.
Converts an object into another type, irrespective of whether the conversion can be done at compile time or not. This can be used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.)
Top Remarks

The framework distinguishes between metrics and distances by using different types for them. This makes it possible to let the compiler figure out logic problems such as the specification of a non-metric for a method that requires a proper metric (i.e. that respects the triangle inequality).

The objective of this technique is to make it harder to make some mistakes. However, it is possible to bypass this mechanism by using the named constructors such as Nonmetric(Double) to create distances implementing the IMetricT interface that are not really metrics. Use at your own risk. See Also