-rwxr-xr-x 1051 high-ctidh-20210523/analyze-pr
#!/usr/bin/env python3
import sys
pp1ready = False
batchboundready = False
data = {}
datanum = {}
keys = set()
for line in sys.stdin:
line = line.split()
if len(line) <= 4: continue
if line[2] != 'action': continue
if line[3] == 'pp1':
pp1 = [float(x) for x in line[4:]]
pp1ready = True
continue
if line[3] == 'batchbound':
batchbound = [int(x) for x in line[4:]]
batchboundready = True
continue
if line[3] == 'stattried':
assert pp1ready
assert batchboundready
stats = line[4:]
assert len(stats) == len(pp1)
keys.add(int(line[1]))
for k in int(line[1]),'total':
if k not in data:
data[k] = [0]*len(pp1)
datanum[k] = 0
datanum[k] += 1
for i in range(len(pp1)):
data[k][i] += int(stats[i])
for k in sorted(keys)+['total']:
output = '%s'%k
for i in range(len(pp1)):
if batchbound[i] == 0:
assert data[k][i] == 0
output += ' 1'
else:
output += ' %.6f' % (data[k][i]/(datanum[k]*batchbound[i]*pp1[i]))
print(output)