-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
gate decomposition can be done by finding wire.apply and get the SSAValue of %op, because we ask users to explicitly write at which stage they want to apply the operator. We can assume we are allowed to evaluate the operator before executing the quantum operation.
Thus we will implement an analysis pass that try to evaluate the operator expression using #21 as much as possible and record the unknown SSAValue in the generated op expression.
then in the rewrite pass of gate decomposition
- for constant expression or simple expression like
rot(X, %theta)we send it to external engines like Cirq (for now) directly - for complicated expression, we traverse the expression tree and send smaller components to external engines (Cirq for now) and get back the corresponding decomposition operation.
- the rewrite pass then insert these decompositions as new
wire.applystatement and delte the old statement.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request