Skip to content

bloqade.stim.rewrite.ifs_to_stim_partial.IfToStimPartial

← Module overview

classIfToStimPartialsource

bloqade.stim.rewrite.ifs_to_stim_partial.IfToStimPartial

Bases: RewriteRule

Rewrite measurement-conditioned IfElse using GetRecIdxFromPredicate.

class IfToStimPartial(address_analysis: dict[ir.SSAValue, Address])

Accepts the Bool condition directly (result of IsOne/IsZero) and creates GetRecIdxFromPredicate -> GetRecord -> CX/CY/CZ. If the body contains multiple Pauli gates, splits into multiple controlled gates sharing the same GetRecord result.

Parameters

NameTypeDescription
address_analysisdict[ir.SSAValue, Address]

Attributes

NameTypeDescription
address_analysisdict[ir.SSAValue, Address]

methodrewrite_Statementsource

bloqade.stim.rewrite.ifs_to_stim_partial.IfToStimPartial.rewrite_Statement

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

Parameters

NameTypeDescription
nodeir.Statement

Returns

RewriteResult

source

methodrewrite_IfElsesource

bloqade.stim.rewrite.ifs_to_stim_partial.IfToStimPartial.rewrite_IfElse

def rewrite_IfElse(stmt: scf.IfElse) -> RewriteResult

Parameters

NameTypeDescription
stmtscf.IfElse

Returns

RewriteResult

source