-
Notifications
You must be signed in to change notification settings - Fork 1
/
use_error_subset.py
31 lines (25 loc) · 1.07 KB
/
use_error_subset.py
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
from compiled_surface_code_error_subsets import *
from projectq import MainEngine
from projectq.backends import Simulator
# Create qubits
eng = MainEngine(Simulator())
data = eng.allocate_qureg(9)
ancilla = eng.allocate_qureg(8)
# Generate an error subset (a list of errors and their corresponding random locations)
# error_number_dictionary = {"XCtrlError" : 5, "YCtrlError" : 6, "XXCtrl" : 1}
errors_to_generate = {"XCtrlError" : 5, "DephasingError" : 6}
# Create an error subset
error_subset = Error.generate_error_subset(errors_to_generate)
# x_error_1 = DephasingError(location=[0,0,0,1])
for error in error_subset:
print("name: {}, location: {}".format(error.name, error.location))
# error_subset_2 = [x_error_1]
# print(error_subset_1[0].location)
# print(error_subset_2[0].location)
# Create syndrome with a randomly placed error
syndrome0 = StabiliserCycle(location=[0])
syndrome1 = StabiliserCycle(location=[1])
syndrome0.run(data, ancilla, eng, error_subset=error_subset)
syndrome1.run(data, ancilla, eng, error_subset=error_subset)
All(Measure) | data
All(Measure) | ancilla