quantum_op_to_qrisp_func#
Module: iqm.qrisp_iqm
- iqm.qrisp_iqm.quantum_op_to_qrisp_func(quantum_op: QuantumOp) QrispFunction#
Create a function for appending IQM Pulse quantum operations to a Qrisp quantum circuit.
Returns a callable that can be used to append an IQMPulseOperation for the specified QuantumOp to a Qrisp circuit. The returned function accepts locus qubits as positional arguments and operation parameters as keyword arguments.
In Jasp tracing mode, dynamic (JAX-traced) parameter values are supported: SymPy placeholder symbols are used in the operation definition, while the actual traced values are forwarded via
param_tracers.- Parameters:
quantum_op (QuantumOp) – IQM Pulse quantum operation definition.
- Returns:
Function for adding the corresponding operation to a Qrisp circuit.
- Return type:
QrispFunction
Example
Define a custom
delaypulse operation, convert it into a Qrisp gate function, and use it inside a Jasp-traced circuit that is then compiled to an IQM pulse circuit:from qrisp import QuantumVariable, h, cx, measure from iqm.pulse.quantum_ops import QuantumOp from iqm.qrisp_iqm import extract_iqm_pulse, quantum_op_to_qrisp_func delay_quantum_op = QuantumOp(name="delay", params={"duration": (float,)}) delay = quantum_op_to_qrisp_func(delay_quantum_op) @extract_iqm_pulse(dqa=...) def my_circuit(): qv = QuantumVariable(2) h(qv[0]) delay(qv[0], duration=100e-9) cx(qv[0], qv[1]) return measure(qv) meas_keys, iqm_circuit = my_circuit()