From 347ffbc3662d135e6b1580e20ca61bdce9f96c7e Mon Sep 17 00:00:00 2001 From: Florian Ingels <florian.ingels@inria.fr> Date: Fri, 3 Jun 2022 16:15:48 +0200 Subject: [PATCH] Minor fix --- src/geomtree/affine_transform.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/geomtree/affine_transform.py b/src/geomtree/affine_transform.py index f03a80b..2a2b197 100644 --- a/src/geomtree/affine_transform.py +++ b/src/geomtree/affine_transform.py @@ -208,7 +208,7 @@ def random_transform(translation=True,scale=True,rotation=True): #-----------------------------------------------------# -def hellinger_distance(tf1,tf2): ### tester VS monte-carlo ? +def hellinger_distance(tf1,tf2,epsilon=1e-6): ### tester VS monte-carlo ? """ See https://en.wikipedia.org/wiki/Hellinger_distance :param tf1: AffineTransform @@ -220,7 +220,11 @@ def hellinger_distance(tf1,tf2): ### tester VS monte-carlo ? sig1 = tf1.get_covariance_matrix() sig2 = tf2.get_covariance_matrix() sigm = (sig1+sig2)/2 - return np.sqrt(1 - (det(sig1)*det(sig2))**(1/4) / det(sigm)**(1/2)*np.exp((-1/8) * np.transpose(t1 - t2) @ inv(sigm) @ (t1 - t2))) + + val = 1 - (det(sig1)*det(sig2))**(1/4) / det(sigm)**(1/2)*np.exp((-1/8) * np.transpose(t1 - t2) @ inv(sigm) @ (t1 - t2)) + if np.abs(val)<epsilon: + val=0 + return np.sqrt(val) #-----------------------------------------------------# -- GitLab