+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);
+}