-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PauliString.after() crashes for Clifford gate PhXZ(a=0.25,x=-1,z=0) in _decompose_into_cliffords #6946
Comments
cirq-sync: convert the gate to a Clifford and detect global phase (Which the clifford gate will ignore) |
Interested in investigating and trying to fix this. |
@babacry thanks Renyi, the fix we suggest is the same as you did in your PR + preserving the global phase |
Thanks for the info, noted! |
Global phases in the Clifford gate won't affect the conjugate_by(), after(), before() results as global phase commute with other gates, where Directly using Investigating the recursive decomposition logic and trying to sort things out with a clean solution. |
good observation .. I forgot we were conjugating.
which cases break it? |
Thanks for the comments! The test case failed in ISwapPowGate as this gate type doesn't have The 2nd commit of the PR fix the issue itself. |
Description of the issue
PauliString.after() should be able to return a PauliString with Clifford ops input, but failed for the Clifford gate
PhasedXZGate(axis_phase_exponent=0.25, x_exponent=-1,z_exponent=0)
.How to reproduce the issue
Cirq version
The text was updated successfully, but these errors were encountered: