bloqade.stim.rewrite.ifs_to_stim_partial.IfToStimPartial
← Module overview
class
method
sourcemethod
source
classIfToStimPartial¶source
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
| Name | Type | Description |
|---|---|---|
address_analysis | dict[ir.SSAValue, Address] |
Attributes
| Name | Type | Description |
|---|---|---|
address_analysis | dict[ir.SSAValue, Address] |
methodrewrite_Statement¶source
bloqade.stim.rewrite.ifs_to_stim_partial.IfToStimPartial.rewrite_Statement
def rewrite_Statement(node: ir.Statement) -> RewriteResultParameters
| Name | Type | Description |
|---|---|---|
node | ir.Statement |
Returns
RewriteResult
methodrewrite_IfElse¶source
bloqade.stim.rewrite.ifs_to_stim_partial.IfToStimPartial.rewrite_IfElse
def rewrite_IfElse(stmt: scf.IfElse) -> RewriteResultParameters
| Name | Type | Description |
|---|---|---|
stmt | scf.IfElse |
Returns
RewriteResult