bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford
classSquinU3ToClifford¶source
bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford
Bases: RewriteRule
Rewrite squin U3 and rotation gate statements to clifford when possible.
class SquinU3ToCliffordmethodrewrite_Statement¶source
bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.rewrite_Statement
def rewrite_Statement(node: ir.Statement) -> RewriteResultParameters
| Name | Type | Description |
|---|---|---|
node | ir.Statement |
Returns
RewriteResult
methodget_constant¶source
bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.get_constant
def get_constant(node: ir.SSAValue) -> float | NoneParameters
| Name | Type | Description |
|---|---|---|
node | ir.SSAValue |
Returns
float | None
methodresolve_angle¶source
bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.resolve_angle
def resolve_angle(angle: float) -> int | NoneNormalize the angle to be in the range [0, 2π).
Parameters
| Name | Type | Description |
|---|---|---|
angle | float |
Returns
int | None
methodrewrite_rotation¶source
bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.rewrite_rotation
Signature
def rewrite_rotation(node: gate.stmts.RotationGate, clifford_map: dict[int, type[ir.Statement] | None]) -> RewriteResultRewrite a rotation gate (Rx, Ry, Rz) to its Clifford equivalent if possible.
Parameters
| Name | Type | Description |
|---|---|---|
node | gate.stmts.RotationGate | |
clifford_map | dict[int, type[ir.Statement] | None] |
Returns
RewriteResult
methodrewrite_U3¶source
bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.rewrite_U3
def rewrite_U3(node: gate.stmts.U3) -> RewriteResultRewrite Apply and Broadcast nodes to their clifford equivalent statements.
Parameters
| Name | Type | Description |
|---|---|---|
node | gate.stmts.U3 |
Returns
RewriteResult
methoddecompose_U3_gates¶source
bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.decompose_U3_gates
Signature
def decompose_U3_gates(node: gate.stmts.U3) -> list[type[ir.Statement]] | list[None]Rewrite U3 statements to clifford gates if possible.
Parameters
| Name | Type | Description |
|---|---|---|
node | gate.stmts.U3 |
Returns
list[type[ir.Statement]] | list[None]