8 return sum(d)*1.0/len(d)
12 return math.sqrt(sum((x-m)**2
for x
in d)*1.0/len(d))
25 if len(line) < 11:
continue
26 if line[3] !=
'mulsq':
continue
27 if line[5] !=
'sq':
continue
28 if line[7] !=
'addsub':
continue
29 if line[9] !=
'cycles':
continue
31 if line[2] ==
'validate':
33 elif line[2] ==
'action':
35 elif line[2] ==
'torsionpoint':
37 elif line[2] ==
'mults':
39 elif line[2] ==
'sqs':
41 elif line[2] ==
'adds':
49 Mcyc = 0.000001*int(line[10])
51 combo185 = mul+0.8*sq+0.05*addsub
53 keys.add(int(line[1]))
54 for k
in int(line[1]),
'total':
61 (
'combo185',combo185),
63 if (k,name)
not in target:
65 target[k,name] += [value]
69for k
in sorted(keys)+[
'total']:
70 for targetname,target
in (
71 (
'validate',validate),
73 (
'torsionpoint',torsion),
80 output =
'%s %s' % (k,targetname)
81 output +=
' experiments %d' % len(target[k,
'Mcyc'])
82 for name
in (
'Mcyc',
'mulsq',
'sq',
'addsub',
'mul',
'combo185'):
84 format =
' %s %.0f+-%.0f'
86 format =
' %s %.5f+-%.5f'
87 output += format%(name,statistics.median(x),
deviation(x))