Skip to content

Commit bfb0687

Browse files
authored
Merge pull request #3 from tqsd/fix_id_issue
removed all id occurances by q_id or similar, since of collision with…
2 parents 18e0d76 + 26bf74b commit bfb0687

3 files changed

Lines changed: 23 additions & 23 deletions

File tree

eqsn/gates.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ def __init__(self):
1818
self.manager = multiprocessing.Manager()
1919
self.shared_dict = SharedDict.get_instance()
2020

21-
def new_qubit(self, id):
21+
def new_qubit(self, q_id):
2222
"""
2323
Creates a new qubit with an id.
2424
2525
Args:
2626
id (String): Id of the new qubit.
2727
"""
2828
q = multiprocessing.Queue()
29-
thread = QubitThread(id, q)
29+
thread = QubitThread(q_id, q)
3030
p = multiprocessing.Process(target=thread.run, args=())
31-
self.shared_dict.set_thread_with_id(id, p, q)
31+
self.shared_dict.set_thread_with_id(q_id, p, q)
3232
p.start()
33-
logging.debug("Created new qubit with id %s.", id)
33+
logging.debug("Created new qubit with id %s.", q_id)
3434

3535
def stop_all(self):
3636
"""
@@ -176,7 +176,7 @@ def cphase_gate(self, q_id1, q_id2):
176176
q = self.shared_dict.get_queues_for_ids([q_id1])[0]
177177
q.put([CONTROLLED_GATE, x, q_id1, q_id2])
178178

179-
def measure(self, id, non_destructive=False):
179+
def measure(self, q_id, non_destructive=False):
180180
"""
181181
Measures a qubit with an id. If non_destructive is False, the qubit
182182
is removed from the system, otherwise, the qubit stays in the system
@@ -188,14 +188,14 @@ def measure(self, id, non_destructive=False):
188188
system after measurement.
189189
"""
190190
ret = self.manager.Queue()
191-
q = self.shared_dict.get_queues_for_ids([id])[0]
191+
q = self.shared_dict.get_queues_for_ids([q_id])[0]
192192
if non_destructive:
193-
q.put([MEASURE_NON_DESTRUCTIVE, id, ret])
193+
q.put([MEASURE_NON_DESTRUCTIVE, q_id, ret])
194194
else:
195-
q.put([MEASURE, id, ret])
195+
q.put([MEASURE, q_id, ret])
196196
res = ret.get()
197197
if not non_destructive:
198-
self.shared_dict.delete_id_and_check_to_join_thread(id)
198+
self.shared_dict.delete_id_and_check_to_join_thread(q_id)
199199
logging.debug(
200-
"Qubit with id %s has been measured with outcome %d.", id, res)
200+
"Qubit with id %s has been measured with outcome %d.", q_id, res)
201201
return res

eqsn/qubit_thread.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def __init__(self, q_id, queue):
3939

4040
logging.debug("Qubit thread with qubit %s has been created.", q_id)
4141

42-
def apply_single_gate(self, mat, id):
42+
def apply_single_gate(self, mat, q_id):
4343
"""
4444
Applys a single gate to a qubit.
4545
@@ -48,7 +48,7 @@ def apply_single_gate(self, mat, id):
4848
id (String): Qubit on which the gate should be applied to.
4949
"""
5050
apply_mat = mat
51-
nr = self.qubits.index(id)
51+
nr = self.qubits.index(q_id)
5252
total_amount = len(self.qubits)
5353
before = nr
5454
after = total_amount - nr - 1
@@ -58,14 +58,14 @@ def apply_single_gate(self, mat, id):
5858
apply_mat = np.kron(apply_mat, np.eye(2 ** after))
5959
self.qubit = np.dot(apply_mat, self.qubit)
6060

61-
def apply_controlled_gate(self, mat, id1, id2):
61+
def apply_controlled_gate(self, mat, q_id1, q_id2):
6262
"""
6363
Apply a controlled gate to
6464
"""
6565
first_mat = 1
6666
second_mat = 1
67-
nr1 = self.qubits.index(id1)
68-
nr2 = self.qubits.index(id2)
67+
nr1 = self.qubits.index(q_id1)
68+
nr2 = self.qubits.index(q_id2)
6969
min_nr = min(nr1, nr2)
7070
max_nr = max(nr1, nr2)
7171
if min_nr == nr1:
@@ -128,13 +128,13 @@ def send_qubits(self, channel):
128128
channel.put(dp(self.qubits))
129129
return
130130

131-
def measure_non_destructive(self, id, ret_channel):
131+
def measure_non_destructive(self, q_id, ret_channel):
132132
"""
133133
Perform a non destructive measurement on qubit with the id.
134134
"""
135135
# determine probability for |1>
136136
measure_vec = np.array([1, 0], dtype=np.csingle)
137-
nr = self.qubits.index(id)
137+
nr = self.qubits.index(q_id)
138138
total_amount = len(self.qubits)
139139
before = nr
140140
after = total_amount - nr - 1
@@ -166,13 +166,13 @@ def measure_non_destructive(self, id, ret_channel):
166166
norm = np.linalg.norm(self.qubit)
167167
self.qubit = self.qubit / norm
168168

169-
def measure(self, id, ret_channel):
169+
def measure(self, q_id, ret_channel):
170170
"""
171171
Perform a destructive measurement on qubit with the id.
172172
"""
173173
# determine probability for |1>
174174
measure_vec = np.array([1, 0], dtype=np.csingle)
175-
nr = self.qubits.index(id)
175+
nr = self.qubits.index(q_id)
176176
total_amount = len(self.qubits)
177177
before = nr
178178
after = total_amount - nr - 1
@@ -198,7 +198,7 @@ def measure(self, id, ret_channel):
198198
if after > 0:
199199
reduction_mat = np.kron(
200200
reduction_mat, np.eye(2 ** after, dtype=np.csingle))
201-
self.qubits.remove(id)
201+
self.qubits.remove(q_id)
202202
if total_amount == 1:
203203
# it was the last qubit, just terminate this process
204204
return

eqsn/shared_dict.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def acquire_write(self):
5757
self._writerList.append(threading.get_ident())
5858
while self._readers > 0:
5959
if self._promote and threading.get_ident() in self._readerList and set(self._readerList).issubset(
60-
set(self._writerList)):
60+
set(self._writerList)):
6161
break
6262
else:
6363
self._read_ready.wait()
@@ -93,8 +93,8 @@ def __init__(self):
9393
def get_queues_for_ids(self, q_id_list):
9494
ret = []
9595
self.lock.acquire_read()
96-
for id in q_id_list:
97-
res = self.id_to_queue[id]
96+
for q_id in q_id_list:
97+
res = self.id_to_queue[q_id]
9898
if res not in ret:
9999
ret.append(res)
100100
self.lock.release_read()

0 commit comments

Comments
 (0)