Interface Metric<EvaluatedType>

Type Parameters:
EvaluatedType - Class of objects that this metric can evaluate
All Superinterfaces:
Cloneable, CloneableSerializable, DivergenceFunction<EvaluatedType,EvaluatedType>, Semimetric<EvaluatedType>, Serializable
All Known Implementing Classes:
ChebyshevDistanceMetric, EuclideanDistanceMetric, IdentityDistanceMetric, KernelDistanceMetric, ManhattanDistanceMetric, MinkowskiDistanceMetric

@CodeReviews(reviews={@CodeReview(reviewer="Kevin R. Dixon",date="2008-02-26",changesNeeded=false,comments="Looks good."),@CodeReview(reviewer="Jonathan McClain",date="2006-05-15",changesNeeded=true,comments={"Code is fine, but is it ok to write a new interface that inherits from DivergenceFunction and adds no new functionality?","I can see the value of specifying that a Metric is a special type of DivergenceFunction, but it seems a little overboard to go about making a whole new interface to do it."},response=@CodeReviewResponse(respondent="Justin Basilico",date="2006-05-16",moreChangesNeeded=false,comments={"The Metric interface exists for two reasons.","The first is that a Metric is a special type of divergence function that obeys special properties that are documented in the class.","The second is that a Metric is a divergence function between two elements of the same type, which is implied how it changes the DivergenceFunction interface to use the same generic parameter."}))})
                      title="Metric (mathematics)",
public interface Metric<EvaluatedType>
extends Semimetric<EvaluatedType>

A metric is a non-negative function that satisfies the following properties g(x, y) + g(y, z) >= g(x, z) g(x, y) == g(y, x) g(x, x) == 0. In other words, a metric is a semimetric that obeys the triangle inequality.

Justin Basilico, Kevin R. Dixon

Method Summary
Methods inherited from interface gov.sandia.cognition.math.DivergenceFunction
Methods inherited from interface gov.sandia.cognition.util.CloneableSerializable