iqm.iqm_client.transpile.transpile_insert_moves

iqm.iqm_client.transpile.transpile_insert_moves#

iqm.iqm_client.transpile.transpile_insert_moves(circuit: Circuit, arch: DynamicQuantumArchitecture, existing_moves: ExistingMoveHandlingOptions | None = None, qubit_mapping: dict[str, str] | None = None) Circuit#

Inserts MOVEs to the circuit according to a given architecture specification.

The function does nothing if the given architecture specification does not support MOVE gates. Note that this method assumes that the circuit is already transpiled to a coupling map/architecture where the resonator has been abstracted away, i.e. the edges of the coupling map that contain resonators are replaced by edges between the other qubit and all qubits that can be moved to that resonator.

Parameters:
  • circuit (Circuit) – The circuit to add MOVE instructions to.

  • arch (DynamicQuantumArchitecture) – Restrictions of the target device

  • existing_moves (ExistingMoveHandlingOptions | None) – Specifies how to deal with existing MOVE instruction, If None, the function will use ExistingMoveHandlingOptions.REMOVE with a user warning if there are move instructions in the circuit.

  • qubit_mapping (dict[str, str] | None) – Mapping of logical qubit names to physical qubit names. Can be set to None if all circuits already use physical qubit names.

Return type:

Circuit