#!/usr/bin/python
from math import sqrt
def euclidean(v1, v2):
length = min(len(v1), len(v2))
if length == 0: return 0
d = 0
for i in range(length):
d += pow((v1[i] - v2[i]), 2)
#return sqrt(d)
return 1 / float(1+d)
def cosine(v1, v2):
length = min(len(v1), len(v2))
if length == 0: return 0
dp = 0 #dot product
m1 = 0 #modulus of v1
m2 = 0 #modulus of v2
for i in range(length):
dp += v1[i] * v2[i]
m1 += v1[i] * v1[i]
m2 += v2[i] * v2[i]
if m1 == 0 or m2 == 0: return 0
distance = dp / (sqrt(m1) * sqrt(m2))
return distance
def pearson(v1, v2):
length = min(len(v1), len(v2))
if length == 0: return 0
#e of v1 v2
e1 = 0
e2 = 0