ProjectQ interoperability

Translating quantum circuits

myQLM provides binders to translate ProjectQ circuits into myQLM circuits through classes AqasmPrinter and AqasmEngine

from projectq.ops import X, H, CNOT
from projectq.cengines import MainEngine
from qat.interop.projectq import AqasmPrinter, AqasmEngine

# Define AQASM engine
aq = AqasmPrinter(MainEngine)
eng = AqasmEngine(aq, engine_list=[aq])

# Create a ProjectQ circuit
q = eng.allocate_qureg(2)
X | q[0]
H | q[0]
CNOT | (q[0], q[1])

# Then recover your generated qlm circuit with
circ = eng.projectq_to_qlm()
print("The circuit is composed of the gates:",
      list(circ.iterate_simple()))
The circuit is composed of the gates: [('X', [], [0]), ('H', [], [0]), ('CNOT', [], [0, 1])]