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, backend, optimize_single_qubits=True, ignore_barriers=False, remove_final_rzs=False, optimization_level=None)#

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