iqm.qiskit_iqm.iqm_naive_move_pass.transpile_to_IQM

iqm.qiskit_iqm.iqm_naive_move_pass.transpile_to_IQM#

iqm.qiskit_iqm.iqm_naive_move_pass.transpile_to_IQM(circuit: QuantumCircuit, backend: IQMBackend | IQMFakeBackend, optimize_single_qubits: bool = True, ignore_barriers: bool = False, remove_final_rzs: bool = False, optimization_level: int | None = None) QuantumCircuit#

Basic function for transpiling to IQM backends. Currently works with Deneb and Garnet

Parameters:
  • circuit (QuantumCircuit) – The circuit to be transpiled without MOVE gates.

  • backend (IQMBackend | IQMFakeBackend) – The target backend to compile to containing a single resonator.

  • optimize_single_qubits (bool) – Whether to optimize single qubit gates away (default = True).

  • ignore_barriers (bool) – Whether to ignore barriers when optimizing single qubit gates away (default = False).

  • remove_final_rzs (bool) – Whether to remove the final Rz rotations (default = False).

  • optimization_level (int | None) –

    How much optimization to perform on the circuits as per Qiskit transpiler. Higher levels generate more optimized circuits, at the expense of longer transpilation time.

    • 0: no optimization

    • 1: light optimization (default)

    • 2: heavy optimization

    • 3: even heavier optimization

Raises:

NotImplementedError – Thrown when the backend supports multiple resonators.

Returns:

The transpiled circuit ready for running on the backend.

Return type:

QuantumCircuit