Skip to content

Commit

Permalink
Change process of cirucit compose by the number of qubits in estimator
Browse files Browse the repository at this point in the history
  • Loading branch information
hitomitak committed Sep 15, 2023
1 parent 69a1fdc commit 2826216
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions qiskit_aer/primitives/estimator.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,21 +302,22 @@ def _create_meas_circuit(self, basis: Pauli, circuit_index: int):
transpile_opts = copy(self._transpile_options)
transpile_opts.update_options(initial_layout=self._layouts[circuit_index])

_num_qubits = self._backend.num_qubits
self._backend.set_option("n_qubits", meas_circuit.num_qubits)
new_circ = transpile(meas_circuit, self._backend, **transpile_opts.__dict__)
self._backend.set_option("n_qubits", _num_qubits)
return new_circ

@staticmethod
def _combine_circs(circuit: QuantumCircuit, meas_circuits: list[QuantumCircuit]):
circs = []
for meas_circuit in meas_circuits:
new_circ = circuit.copy()
for creg in meas_circuit.cregs:
new_circ.add_register(creg)
new_circ.compose(meas_circuit, inplace=True)
_update_metadata(new_circ, meas_circuit.metadata)
if circuit.num_qubits >= meas_circuit.num_qubits:
new_circ = circuit.copy()
for creg in meas_circuit.cregs:
new_circ.add_register(creg)
new_circ.compose(meas_circuit, inplace=True)
_update_metadata(new_circ, meas_circuit.metadata)
else:
new_circ = meas_circuit.compose(circuit, front=True)
_update_metadata(new_circ, circuit.metadata)
circs.append(new_circ)
return circs

Expand Down

0 comments on commit 2826216

Please sign in to comment.