Skip to content

Commit a38947e

Browse files
committed
Force at least one classical bit in qpd_measurements register
This is a potential workaround to openqasm/qe-qasm#37
1 parent f3fd581 commit a38947e

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

circuit_knitting/cutting/qpd/decompose.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,10 @@ def _decompose_qpd_measurements(
145145
if instruction.operation.name.lower() == "qpd_measure"
146146
]
147147

148-
# Create a classical register for the qpd measurement results. This is
149-
# partly for convenience, partly to work around
150-
# https://github.com/Qiskit/qiskit-aer/issues/1660.
151-
reg = ClassicalRegister(len(qpd_measure_ids), name="qpd_measurements")
148+
# Create a classical register for the qpd measurement results.
149+
# We force at least one classical bit as a workaround to
150+
# https://github.com/openqasm/qe-qasm/issues/37.
151+
reg = ClassicalRegister(max(1, len(qpd_measure_ids)), name="qpd_measurements")
152152
circuit.add_register(reg)
153153

154154
# Place the measurement instructions

test/cutting/qpd/test_qpd.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -148,15 +148,15 @@ def test_decompose_qpd_instructions(self):
148148
with self.subTest("Empty circuit"):
149149
circ = QuantumCircuit()
150150
new_circ = decompose_qpd_instructions(QuantumCircuit(), [])
151-
circ.add_register(ClassicalRegister(0, name="qpd_measurements"))
151+
circ.add_register(ClassicalRegister(1, name="qpd_measurements"))
152152
self.assertEqual(circ, new_circ)
153153
with self.subTest("No QPD circuit"):
154154
circ = QuantumCircuit(2, 1)
155155
circ.h(0)
156156
circ.cx(0, 1)
157157
circ.measure(1, 0)
158158
new_circ = decompose_qpd_instructions(circ, [])
159-
circ.add_register(ClassicalRegister(0, name="qpd_measurements"))
159+
circ.add_register(ClassicalRegister(1, name="qpd_measurements"))
160160
self.assertEqual(circ, new_circ)
161161
with self.subTest("Single QPD gate"):
162162
circ = QuantumCircuit(2)
@@ -165,7 +165,7 @@ def test_decompose_qpd_instructions(self):
165165
qpd_gate = TwoQubitQPDGate(qpd_basis)
166166
circ.data.append(CircuitInstruction(qpd_gate, qubits=[0, 1]))
167167
decomp_circ = decompose_qpd_instructions(circ, [[0]], map_ids=[0])
168-
circ_compare.add_register(ClassicalRegister(0, name="qpd_measurements"))
168+
circ_compare.add_register(ClassicalRegister(1, name="qpd_measurements"))
169169
self.assertEqual(decomp_circ, circ_compare)
170170
with self.subTest("Incorrect map index size"):
171171
with pytest.raises(ValueError) as e_info:

0 commit comments

Comments
 (0)