Guest User

Untitled

a guest
Jun 1st, 2014
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.25 KB | None | 0 0
  1. import math
  2. import time
  3. import _numpypy
  4. import numpy as np
  5. from itertools import izip
  6. from itertools import combinations_with_replacement
  7.  
  8.  
  9. def main():
  10.     #data = get_data(nparr=True)
  11.     data = get_data(nparr=False)
  12.     v1 = data[-1]
  13.     func = std_sum
  14.     #func = np_sum
  15.     #func = lmd_sum
  16.     #func = so_sum
  17.     testcases = combinations_with_replacement(data[0:5000], 2)
  18.     t0 = time.time()
  19.     for (v1,v2) in testcases:
  20.         func(v1, v2)
  21.     t1 = time.time()
  22.     print t1-t0
  23.    
  24.  
  25. def std_sum(v1, v2):
  26.     distance = 0.0
  27.     for (a,b) in izip(v1, v2):
  28.         distance += math.fabs(a-b)
  29.     return distance
  30.  
  31.  
  32. lzi = lambda v1, v2: reduce(lambda s, (a,b):s + math.fabs(a-b), izip(v1, v2), 0)
  33. def lmd_sum(v1, v2):
  34.     return lzi(v1, v2)
  35.  
  36. def np_sum(v1, v2):
  37.     return np.sum(np.abs(v1-v2))
  38.  
  39. def so_sum(v1, v2):
  40.     np.sum(abs(a-b) for a, b in izip(v1, v2))
  41.  
  42.  
  43. def get_data(filename="data/perfdata", nparr=False):
  44.     f = open(filename)
  45.     contents = f.read().splitlines()
  46.     data = []
  47.     for line in contents:
  48.         arr = [float(d) for d in line.split(',') ]
  49.         if nparr:
  50.             data.append(np.array(arr))
  51.         else:
  52.             data.append(arr)
  53.     return data
  54.  
  55.  
  56. if __name__ == "__main__":
  57.     main()
Advertisement
Add Comment
Please, Sign In to add comment