AddInjectNoise
class samplomatic.transpiler.passes.AddInjectNoise(*args, **kwargs)
Bases: TransformationPass
Inserts InjectNoise annotations to all the unique boxes with twirling annotation.
This pass finds boxes matching the conditions implied by targets, adds inject noise to their annotations, and replaces them with new boxes with the updated annotations.
Parameters
-
strategy – The noise injection strategy.
-
site – Whether to inject the noise before or after the associated hard content. Boxes containing a measurement or a reset always use the
'before'site, regardless of this value; see the note below. -
overwrite – Whether to overwrite the inject noise annotations that are already present in the circuit.
-
prefix_ref – A prefix to all the
refgenerated by this class. -
prefix_modifier_ref – A prefix to all the
modifier_refsgenerated by this class. -
targets –
The class of annotated boxes to target. The supported values are:
-
'none'to avoid annotating boxes of any kind. -
'gates'to target only the twirl-annotated boxes that contain entanglers. -
'measures'to target only the twirl-annotated boxes that own classicalregisters.
-
'all'to target all the twirl-annotated boxes that contain entanglersand/or own classical registers.
-
Boxes containing a measurement or a reset are annotated with the 'before' site even when site='after'. Virtual Paulis cannot travel leftward across a measurement or a reset, so an injection placed after the hard content of such a box is discarded during build() on the qubits those instructions act on, while its sign is still reported. Forcing the 'before' site guarantees that the injection is realized. Since site is one of the inputs to ref() generation, such a box is assigned the same ref whichever site is requested, whereas the ref of every other box changes along with it.
The BoxKey() to prefix_ref. This means this pass assigns boxes with the same BoxKey the same ref from circuit to circuit.
When using the 'uniform_modification' strategy, the On the other hand, the `()’individual_modification’`` strategy appends the value of a counter to modifier_ref that is incremented following DAG traversal order.
Methods Summary
Column 1 | Column 2 |
|---|---|
run(dag) | Run a pass on the DAGCircuit. |
Methods Documentation
run
run(dag: DAGCircuit) → DAGCircuit
Run a pass on the DAGCircuit. This is implemented by the pass developer.
Parameters
dag – the dag on which the pass is run.
Raises
NotImplementedError – when this is left unimplemented for a pass.