Glob
Passes that deal with global gates. As of now, only one rewrite pass exists which converts global gates to single qubit gates.
GlobalToUOP
Bases: Pass
Pass to convert Global gates into single gates.
This pass rewrites the global unitary gate from the qasm2.glob
dialect into multiple
single gates in the qasm2.uop
dialect, bringing the program closer to
conforming to standard QASM2 syntax.
Usage Examples
# Define kernel
@qasm2.extended
def main():
q1 = qasm2.qreg(1)
q2 = qasm2.qreg(2)
theta = 1.3
phi = 1.1
lam = 1.2
qasm2.glob.u(theta=theta, phi=phi, lam=lam, registers=[q1, q2])
GlobalToUOP(dialects=main.dialects)(main)
# Run rewrite
GlobalToUOP(main.dialects)(main)
The qasm2.glob.u
statement has been rewritten to individual gates:
qasm2.uop.u(q1[0], theta, phi, lam)
qasm2.uop.u(q1[0], theta, phi, lam)
qasm2.uop.u(q2[1], theta, phi, lam)