--- /dev/null
+"""
+This module provides code for various distance measures.
+
+Functions:
+euclidean Euclidean distance between two points
+euclidean_py Pure Python implementation of euclidean.
+
+"""
+# XXX cosine distance
+
+import warnings
+warnings.warn("Bio.distance is deprecated. If you use this module, please notify the Biopython developers at biopython-dev@biopython.org", DeprecationWarning)
+
+from numpy import *
+
+def euclidean(x, y):
+ """euclidean(x, y) -> euclidean distance between x and y"""
+ if len(x) != len(y):
+ raise ValueError("vectors must be same length")
+ #return sqrt(sum((x-y)**2))
+ # Optimization by John Corradi (JCorradi@msn.com)
+ d = x-y
+ return sqrt(dot(d, d))
+
+def euclidean_py(x, y):
+ """euclidean_py(x, y) -> euclidean distance between x and y"""
+ # lightly modified from implementation by Thomas Sicheritz-Ponten.
+ # This works faster than the Numeric implementation on shorter
+ # vectors.
+ if len(x) != len(y):
+ raise ValueError("vectors must be same length")
+ sum = 0
+ for i in range(len(x)):
+ sum += (x[i]-y[i])**2
+ return sqrt(sum)