bloqade.qasm2.passes.glob.GlobalToUOP
← Module overview
class
method
sourcemethod
source
classGlobalToUOP¶source
bloqade.qasm2.passes.glob.GlobalToUOP
Bases: Pass
Pass to convert Global gates into single gates.
class GlobalToUOPThis 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
Section titled “Usage Examples”# Define kernel@qasm2.extendeddef 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 rewriteGlobalToUOP(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(q2[0], theta, phi, lam)qasm2.uop.u(q2[1], theta, phi, lam)methodgenerate_rule¶source
bloqade.qasm2.passes.glob.GlobalToUOP.generate_rule
def generate_rule(mt: ir.Method) -> GlobalToUOpRuleParameters
| Name | Type | Description |
|---|---|---|
mt | ir.Method |
Returns
GlobalToUOpRule
methodunsafe_run¶source
bloqade.qasm2.passes.glob.GlobalToUOP.unsafe_run
def unsafe_run(mt: ir.Method) -> abc.RewriteResultParameters
| Name | Type | Description |
|---|---|---|
mt | ir.Method |
Returns
abc.RewriteResult