Pushes Z gates towards the end of the circuit.
cirq.eject_z(
circuit: 'cirq.AbstractCircuit',
*,
context: Optional['cirq.TransformerContext'] = None,
atol: float = 0.0,
eject_parameterized: bool = False
) -> 'cirq.Circuit'
Used in the notebooks
As the Z gates get pushed they may absorb other Z gates, get absorbed into
measurements, cross CZ gates, cross PhasedXPowGate (aka W) gates (by phasing them), etc.
Args |
circuit
|
Input circuit to transform.
|
context
|
cirq.TransformerContext storing common configurable options for transformers.
|
atol
|
Maximum absolute error tolerance. The optimization is
permitted to simply drop negligible combinations of Z gates,
with a threshold determined by this tolerance.
|
eject_parameterized
|
If True, the optimization will attempt to eject
parameterized Z gates as well. This may result in other gates
parameterized by symbolic expressions.
|
Returns |
Copy of the transformed input circuit.
|