aboutsummaryrefslogtreecommitdiff
path: root/measurements/2017-11-03/format.py
blob: b31a34709386c07d46550ee6f21c237c5839d107 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import sys, collections


results = {}

def do_impl(prime, impl, time):
    if prime not in results.keys():
        results[prime] = {}
    if impl not in results[prime].keys():
        results[prime][impl] = 1e400
    results[prime][impl] = min(results[prime][impl], time)

for line in sys.stdin:
    prime, impl, time = line.split()
    # impl = {'fiat_solinas32':'fiat_solinas',
    #         'fiat_solinas64':'fiat_solinas',
    #         'fiat_montgomery64':'fiat_montgomery',
    #         'fiat_montgomery32':'fiat_montgomery',
    #        }.get(impl, impl)
    time = float(time)
    do_impl(prime, impl, time)
    # do_impl(prime,'xfiat' if 'fiat' in impl else 'xgmp', time)

def format_prime(p):
    return p.replace('x','*').replace('p','+').replace('e','^').replace('m','-')

impls = sorted(set(sum((list(d.keys()) for d in results.values()),[])))
print('\t'.join(['.']+impls))
for p in sorted(list(results.keys())):
    r = results[p].get('xgmp', 1e400) / results[p].get('xfiat', 1e400)
    print('\t'.join([format_prime(p)]+[str(results[p].get(i,'-')) for i in impls]))