class cirq.EjectPhasedPaulis(tolerance: float = 1e-08)[source]

Pushes X, Y, and PhasedX gates towards the end of the circuit.

As the gates get pushed, they may absorb Z gates, cancel against other
X, Y, or PhasedX gates with exponent=1, get merged into measurements (as
output bit flips), and cause phase kickback operations across CZs (which can
then be removed by the EjectZ optimization).
__init__(tolerance: float = 1e-08) → None[source]
Parameters:tolerance – Maximum absolute error tolerance. The optimization is permitted to simply drop negligible combinations of Z gates, with a threshold determined by this tolerance.