Qrisp IQM API Reference#

This section provides a curated overview of the iqm.qrisp_iqm package. For the complete auto-generated API, see the

Backend Infrastructure#

IQMBackend

Qrisp backend for executing circuits on IQM quantum hardware. Supports both gate-level and pulse-level submission. Automatically detects whether a circuit contains IQMPulseOperation instructions and routes to the appropriate submission path.

IQMCircuitJob

Job handle for gate-level circuit submissions.

IQMPulseJob

Job handle for pulse-level playlist submissions.

Circuit Conversion#

qrisp_to_iqm_converter()

Converts a Qrisp QuantumCircuit into an IQM Circuit. Maps Qrisp qubit indices to physical qubit names (QB1, QB2, …) based on the device’s dynamic quantum architecture.

Pulse Operations#

IQMPulseOperation

A Qrisp Operation subclass that wraps a native IQM pulse QuantumOp. Survives transpilation unchanged, enabling pulse-level instructions (delays, barriers, custom gates) to be embedded directly in Qrisp circuits.

quantum_op_to_qrisp_func()

Convenience function that converts an IQM QuantumOp into a Qrisp-callable gate function (usable like h, cx, etc.).

extract_iqm_pulse()

Decorator that traces a Qrisp quantum function via Jasp, transpiles the resulting circuit, and converts it to an IQM Circuit. Supports custom PassManager pipelines (or None to skip transpilation). Returns measurement keys alongside the compiled circuit.

Transpilation Passes#

Default Pipeline#

create_iqm_pass_manager()

Factory that builds a fully configured PassManager implementing the complete plasma-sabre transpilation pipeline: predicate-based decomposition, layout, routing, SWAP optimization, and gate conversion to CZ + PRX.

transpile_to_iqm()

Convenience function that calls create_iqm_pass_manager() and immediately runs the resulting pipeline on a circuit.

Layout Passes#

plasma_layout()

Stochastic initial qubit placement. Tries VF2++ subgraph isomorphism first; falls back to heuristic search. Parameters: connectivity, effort, depth_weight.

vf2pp_layout()

Exact subgraph isomorphism layout. Raises an error if no perfect mapping exists.

manual_layout

Explicit mapping of logical qubits to physical qubit indices.

Routing Passes#

plasma_route()

Inserts SWAP gates to satisfy connectivity constraints. Parameters: connectivity, effort, depth_weight.

Optimization Passes#

commute_phases()

Commutes phase gates to reduce circuit depth.

measurement_parallelization()

Parallelizes measurement operations for more efficient execution.

Quantum Error Correction#

DetectorExperiment

Decorator class for defining parameterised QEC experiments. Provides .compute_LER(), .batched_compute_LER(), .to_stim(), .to_qc(), and .to_iqm() methods for the full workflow from classical simulation to hardware execution.

Custom Pulse Operations#

delay()

A pre-built delay operation that inserts idle time into the circuit. This is a IQMPulseOperation wrapper around IQM’s native delay gate.