diff --git a/src/geomtree/affine_transform.py b/src/geomtree/affine_transform.py
index f03a80bc26008c9264fb0ccf907ff27adf759ed0..2a2b197dfb7698253ef0a5fe34c6b0c450848cf4 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)
 
 #-----------------------------------------------------#