Open
Description
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
>>> a = cirq.NamedQubit('a')
>>> ps = cirq.PauliString() * cirq.Y(a)
>>> phxz = cirq.PhasedXZGate(axis_phase_exponent=0.25, x_exponent=-1,z_exponent=0)
>>> ps.after(phxz.on(a))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1008, in after
return self.conjugated_by(protocols.inverse(ops))
File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 987, in conjugated_by
for clifford_op in _decompose_into_cliffords(op)[::-1]:
File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1606, in _decompose_into_cliffords
return [out for sub_op in decomposed for out in _decompose_into_cliffords(sub_op)]
File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1606, in <listcomp>
return [out for sub_op in decomposed for out in _decompose_into_cliffords(sub_op)]
File "/usr/local/google/home/renyichen/miniconda3/envs/cirq-conda/lib/python3.10/site-packages/cirq/ops/pauli_string.py", line 1608, in _decompose_into_cliffords
raise TypeError(
TypeError: Operation is not a known Clifford and did not decompose into known Cliffords: (cirq.T**-1).on(cirq.NamedQubit('a'))
Cirq version
1.5.0.dev20250109234340
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done