Skip to content

bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford

← Module overview

classSquinU3ToCliffordsource

bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford

Bases: RewriteRule

Rewrite squin U3 and rotation gate statements to clifford when possible.

class SquinU3ToClifford

methodrewrite_Statementsource

bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.rewrite_Statement

def rewrite_Statement(node: ir.Statement) -> RewriteResult

Parameters

NameTypeDescription
nodeir.Statement

Returns

RewriteResult

source

methodget_constantsource

bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.get_constant

def get_constant(node: ir.SSAValue) -> float | None

Parameters

NameTypeDescription
nodeir.SSAValue

Returns

float | None

source

methodresolve_anglesource

bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.resolve_angle

def resolve_angle(angle: float) -> int | None

Normalize the angle to be in the range [0, 2π).

Parameters

NameTypeDescription
anglefloat

Returns

int | None

source

methodrewrite_rotationsource

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]) -> RewriteResult

Rewrite a rotation gate (Rx, Ry, Rz) to its Clifford equivalent if possible.

Parameters

NameTypeDescription
nodegate.stmts.RotationGate
clifford_mapdict[int, type[ir.Statement] | None]

Returns

RewriteResult

source

methodrewrite_U3source

bloqade.squin.rewrite.U3_to_clifford.SquinU3ToClifford.rewrite_U3

def rewrite_U3(node: gate.stmts.U3) -> RewriteResult

Rewrite Apply and Broadcast nodes to their clifford equivalent statements.

Parameters

NameTypeDescription
nodegate.stmts.U3

Returns

RewriteResult

source

methoddecompose_U3_gatessource

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

NameTypeDescription
nodegate.stmts.U3

Returns

list[type[ir.Statement]] | list[None]

source