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: IQMBackendBase, target: IQMTarget | None = None, initial_layout: Layout | dict | list | None = None, perform_move_routing: bool = True, optimize_single_qubits: bool = True, ignore_barriers: bool = False, remove_final_rzs: bool = True, existing_moves_handling: ExistingMoveHandlingOptions | None = None, restrict_to_qubits: list[int] | list[str] | None = None, **qiskit_transpiler_kwargs) QuantumCircuit#

Customized transpilation to IQM backends.

Works with both the Crystal and Star architectures.

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

  • backend (IQMBackendBase) – The target backend to compile to. Does not require a resonator.

  • target (IQMTarget | None) – An alternative target to compile to than the backend, using this option requires intimate knowledge of the transpiler and thus it is not recommended to use.

  • initial_layout (Layout | dict | list | None) – The initial layout to use for the transpilation, same as transpile().

  • perform_move_routing (bool) – Whether to perform MOVE gate routing.

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

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

  • remove_final_rzs (bool) – Whether to remove the final z rotations. It is recommended always to set this to true as

  • circuit. (the final RZ gates do no change the measurement outcomes of the) –

  • existing_moves_handling (ExistingMoveHandlingOptions | None) – How to handle existing MOVE gates in the circuit, required if the circuit contains MOVE gates.

  • restrict_to_qubits (list[int] | list[str] | None) – Restrict the transpilation to only use these specific physical qubits. Note that you will have to pass this information to the backend.run method as well as a dictionary.

  • qiskit_transpiler_kwargs – Arguments to be passed to the Qiskit transpiler.

Returns:

Transpiled circuit ready for running on the backend.

Return type:

QuantumCircuit