X-Git-Url: https://git.llucax.com/software/dgc/dgcbench.git/blobdiff_plain/f4b2f2a329f750a6d1e4db54c0eccfa2bde701b7..3c6430d7b2a15133e467a3a4e04a3a8a012d09f3:/stats.py?ds=inline diff --git a/stats.py b/stats.py index fc08dd3..0008fe9 100755 --- a/stats.py +++ b/stats.py @@ -1,12 +1,34 @@ #!/usr/bin/env python +import re import sys import numpy.numarray.mlab as m +exp = '$1' +fmt = '%(min)s,%(mean)s,%(max)s,%(std)s' +sep = ',' + +try: + exp = sys.argv[1] + fmt = sys.argv[2] + sep = sys.argv[3] +except: + pass + vals = [] -for l in sys.stdin: +for n, l in enumerate(sys.stdin): l = l.strip() - if l: - vals.append(float(l)) -print '%s,%s,%s,%s' % (min(vals), m.mean(vals), max(vals), m.std(vals)) + if not l: + continue + try: + fields = dict([('$'+str(int(k)+1), float(v.strip())) + for k, v in enumerate(l.split(sep))]) + v = float(eval(re.sub(r'(\$\d+)', r'%(\1)f', exp) % fields)) + except: + if n == 0: + continue + raise + vals.append(v) +vars = dict(min=min(vals), mean=m.mean(vals), max=max(vals), std=m.std(vals)) +print fmt % vars