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: