Closed
Description
Greedy qubit manager fails with a duplicate QID on a CNOT in the LessThanConstant
, SimpleQubitManager works without issue.
Issue occurs with current release of qualtran (0.2.0)
Code to reproduce:
import cirq
from qualtran.bloqs.prepare_uniform_superposition import PrepareUniformSuperposition
n=3
target = cirq.NamedQubit.range((n-1).bit_length(),prefix='target')
control = [cirq.NamedQubit('control')]
circuit_error = cirq.inverse(cirq.Circuit(PrepareUniformSuperposition(n,cvs=(0,)).on_registers(ctrl=control,target=target)))
#Greedy fails, simple works
gqm = cirq.GreedyQubitManager(prefix="_ancilla", maximize_reuse=True)
#gqm = cirq.SimpleQubitManager(prefix="_ancilla")
cirq.decompose(circuit_error,context = cirq.DecompositionContext(gqm))
Metadata
Metadata
Assignees
Labels
No labels