Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
benchmark_graph_03.py
Go to the documentation of this file.
1import numpy as np
2import matplotlib.pyplot as plt
3import re
4
5barWidth = 0.25
6fig = plt.subplots(figsize =(12, 8))
7
8pattern = re.compile("(32m)([0-9]+)")
9
10average_cglhash2 = []
11average_cglhash3 = []
12
13# 1. Check for p254
14matching_values = []
15for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p254-output.txt')):
16 for match in re.finditer(pattern, line):
17 matching_values.append(int(match.group(2)))
18average_cglhash2.append(matching_values[0])
19average_cglhash3.append(matching_values[1])
20
21# 2. Check for p252
22matching_values = []
23for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p255-output.txt')):
24 for match in re.finditer(pattern, line):
25 matching_values.append(int(match.group(2)))
26average_cglhash2.append(matching_values[0])
27average_cglhash3.append(matching_values[1])
28
29# 3. Check for p381
30matching_values = []
31for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p381-output.txt')):
32 for match in re.finditer(pattern, line):
33 matching_values.append(int(match.group(2)))
34average_cglhash2.append(matching_values[0])
35average_cglhash3.append(matching_values[1])
36
37# 4. Check for p383
38matching_values = []
39for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p383-output.txt')):
40 for match in re.finditer(pattern, line):
41 matching_values.append(int(match.group(2)))
42average_cglhash2.append(matching_values[0])
43average_cglhash3.append(matching_values[1])
44
45# 5. Check for p398
46matching_values = []
47for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p398-output.txt')):
48 for match in re.finditer(pattern, line):
49 matching_values.append(int(match.group(2)))
50average_cglhash2.append(matching_values[0])
51average_cglhash3.append(matching_values[1])
52
53# 6. Check for p511
54matching_values = []
55for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p511-output.txt')):
56 for match in re.finditer(pattern, line):
57 matching_values.append(int(match.group(2)))
58average_cglhash2.append(matching_values[0])
59average_cglhash3.append(matching_values[1])
60
61# 7. Check for p575
62matching_values = []
63for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p575-output.txt')):
64 for match in re.finditer(pattern, line):
65 matching_values.append(int(match.group(2)))
66average_cglhash2.append(matching_values[0])
67average_cglhash3.append(matching_values[1])
68
69# 8. Check for p592
70matching_values = []
71for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p592-output.txt')):
72 for match in re.finditer(pattern, line):
73 matching_values.append(int(match.group(2)))
74average_cglhash2.append(matching_values[0])
75average_cglhash3.append(matching_values[1])
76
77# 9. Check for p765
78matching_values = []
79for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p765-output.txt')):
80 for match in re.finditer(pattern, line):
81 matching_values.append(int(match.group(2)))
82average_cglhash2.append(matching_values[0])
83average_cglhash3.append(matching_values[1])
84
85# 10. Check for p783
86matching_values = []
87for i, line in enumerate(open('../../c-code/cmake-build-release-cycles-x8664-graph-03/benchmarks_ssec-p783-output.txt')):
88 for match in re.finditer(pattern, line):
89 matching_values.append(int(match.group(2)))
90average_cglhash2.append(matching_values[0])
91average_cglhash3.append(matching_values[1])
92
93
94IT = average_cglhash2
95ECE = average_cglhash3
96
97br1 = np.arange(len(IT))
98br2 = [x + barWidth for x in br1]
99
100plt.bar(br1, IT, color ='r', width = barWidth, edgecolor ='grey', label ='2-isogenies')
101plt.bar(br2, ECE, color ='b', width = barWidth, edgecolor ='grey', label ='3-isogenies')
102
103plt.xlabel('Primes', fontweight ='bold', fontsize = 15)
104plt.ylabel('CPU Cycles', fontweight ='bold', fontsize = 15)
105plt.xticks([r + barWidth for r in range(len(IT))],
106 ['p254', 'p255', 'p381', 'p383', 'p398', 'p511', 'p575', 'p592', 'p765', 'p783'])
107
108plt.title('Benchmarks for the 2-isogenies vs. 3-isogenies walks')
109
110plt.legend()
111plt.show()