qsim
qsim copied to clipboard
cirq.ClassicallyControlledOperation raises "ValueError: Encountered unparseable op"
Minimal reproducer:
import cirq
import qsimcirq
simulator = qsimcirq.QSimSimulator()
q = cirq.NamedQubit("q")
circuit = cirq.Circuit([
cirq.measure(q, key="c"),
cirq.ClassicallyControlledOperation(cirq.Z(q), "c")
])
simulator.simulate(circuit)
Traceback:
Traceback (most recent call last):
File "***/minimal_reproducer.py", line 12, in <module>
simulator.simulate(circuit)
File "***/venv/lib/python3.10/site-packages/cirq/sim/simulator.py", line 491, in simulate
return self.simulate_sweep(
File "***/venv/lib/python3.10/site-packages/cirq/sim/simulator.py", line 506, in simulate_sweep
return list(self.simulate_sweep_iter(program, params, qubit_order, initial_state))
File "***/venv/lib/python3.10/site-packages/qsimcirq/qsim_simulator.py", line 519, in simulate_sweep_iter
options["c"], _ = self._translate_circuit(
File "***/venv/lib/python3.10/site-packages/qsimcirq/qsim_simulator.py", line 808, in _translate_circuit
translated, moment_indices = translator_fn(qubit_order)
File "***/venv/lib/python3.10/site-packages/qsimcirq/qsim_circuit.py", line 473, in translate_cirq_to_qtrajectory
raise ValueError(f"Encountered unparseable op: {qsim_op}")
ValueError: Encountered unparseable op: Z(q).with_classical_controls(c)
Version:
cirq-core==1.0.0
qsimcirq==0.14.0
I happened to encounter this unsupported feature by chance. But I think it would be great if there is a comprehensive list of features still not yet supported by qsimcirq
.
See also: #149