Skip to content

Commit 68fe7ca

Browse files
committed
implemented conjugated comparison for arithmetic comparisons
1 parent 758560f commit 68fe7ca

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/qrisp/arithmetic/comparisons.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919

2020
from qrisp.misc.utility import lifted
21-
from qrisp.environments import adaptive_condition
21+
from qrisp.environments import adaptive_condition, conjugate
2222

2323

2424
def less_than_gate(a, b):
@@ -226,17 +226,17 @@ def equal(qf_0, qf_1):
226226
significance_dict[qf_0.exponent + i] = qf_0[i]
227227
mcx_qubits.append(qf_0[i])
228228

229+
def conjugator(qf_1, significance_dict):
230+
for i in range(qf_1.msize):
231+
if i + qf_1.exponent in significance_dict:
232+
cx(qf_1[i], significance_dict[i + qf_1.exponent])
233+
229234
for i in range(qf_1.msize):
230-
if i + qf_1.exponent in significance_dict:
231-
cx(qf_1[i], significance_dict[i + qf_1.exponent])
232-
else:
235+
if i + qf_1.exponent not in significance_dict:
233236
mcx_qubits.append(qf_1[i])
234237

235-
mcx(mcx_qubits, eq_qbl, ctrl_state=0)
236-
237-
for i in range(qf_1.msize):
238-
if i + qf_1.exponent in significance_dict:
239-
cx(qf_1[i], significance_dict[i + qf_1.exponent])
238+
with conjugate(conjugator)(qf_1, significance_dict):
239+
mcx(mcx_qubits, eq_qbl, ctrl_state=0)
240240

241241
if qf_1.signed and qf_0.signed:
242242
cx(qf_1.sign(), qf_0.sign())

0 commit comments

Comments
 (0)