package fr.orsay.lri.varna.models.treealign;
public interface TreeAlignLabelDistanceAsymmetric<ValueType1, ValueType2> {
/**
* Returns the substitution cost between v1 and v2.
* We use the convention that a null reference is a blank,
* ie. f(x, null) is the cost of deleting x
* and f(null, x) is the cost of inserting x.
* We won't use f(null, null).
* We suppose f is such that:
* f(x,x) = 0
* 0 <= f(x,y) < +infinity
* You may also want to have the triangle inequality,
* although the alignment algorithm does not require it:
* f(x,z) <= f(x,y) + f(y,z)
*/
public double f(ValueType1 x, ValueType2 y);
}