public float getDistance(String s1, String s2) {int[] mtp = matches(s1, s2);float m = mtp[0];if (m == 0) {return 0f;}float j = ((m / s1.length() + m / s2.length() + (m - mtp[1]) / m)) / 3;float jw = j < getThreshold() ? j : j + Math.min(0.1f, 1f / mtp[3]) * mtp[2]* (1 - j);return jw;}

public virtual float GetDistance(string s1, string s2){int[] mtp = Matches(s1, s2);float m = mtp[0];if (m == 0){return 0f;}float j = ((m / s1.Length + m / s2.Length + (m - mtp[1]) / m)) / 3;float jw = j < Threshold ? j : j + Math.Min(0.1f, 1f / mtp[3]) * mtp[2] * (1 - j);return jw;}
