CircuitOperation#
- class iqm.pulse.builder.CircuitOperation(name, locus, args=<factory>, implementation=None)#
Bases:
objectSpecific quantum operation applied on a specific part of the QPU, e.g. in a quantum circuit.
We currently support the following native operations for circuit execution:
name
# of qubits
args
description
measure
>= 1
key: str,feedback_key: strMeasurement in the Z basis.
prx
1
angle: float,phase: floatPhased x-rotation gate.
cc_prx
1
angle: float,phase: float,feedback_qubit: str,feedback_key: strClassically controlled PRX gate.
reset
>= 1
Reset the qubit(s) to \(|0\rangle\).
cz
2
Controlled-Z gate.
move
2
Move a qubit state between a qubit and a computational resonator, as long as at least one of the components is in the \(|0\rangle\) state.
barrier
>= 1
Execution barrier.
delay
>= 1
duration: floatForce a delay between circuit operations.
For each CircuitOperation you may also optionally specify
implementation, which contains the name of an implementation of the operation to use. Support for multiple implementations is currently experimental and in normal use the field should be omitted, this selects the default implementation for the operation for that locus.See the submodules under
iqm.pulse.gatesfor more details about each operation.Module:
iqm.pulse.builderAttributes
name of the implementation
name of the quantum operation
names of the information-bearing QPU components (qubits, computational resonators...) the operation acts on
arguments for the operation
Methods
Validate the operation against a table of operation definitions.
- locus: tuple[str, ...]#
names of the information-bearing QPU components (qubits, computational resonators…) the operation acts on
- validate(op_table)#
Validate the operation against a table of operation definitions.
- Parameters:
op_table (dict[str, QuantumOp]) – table containing allowed quantum operations
- Raises:
ValueError – operation is not valid
- Return type:
None