Skip to content

Quantum Operations

Quantum computing experiments consist of quantum circuits of gates applied on a set of qubits. Therefore, the natural description of such circuits is in terms of quantum gates and operations that are applied on a qubit or a set of qubits.

In LabOne Q, you can do this using QuantumOperations. A set of quantum operations is collection of Sections and pulses implementing common operations on qubits. For example, single-qubit gates (x180, y90, etc.), two-qubit gates (CZ, CR, CNOT, etc.), or any other collection of Sections and pulses that are reused often in quantum experiments, such as an active-reset operation.

Design and Implementation

The pulse commands introduced before operate on Logical Signal Lines. Quantum operations operate on qubits and wrap a Section around one or more pulse commands applied on the relevant logical signals of the qubits. Therefore, the quantum operations have the following call signature:

section = my_quantum_operation(qubit, ...)

When acting on a single qubit, the return value of a quantum operation is a Section. You also have the option of broadcasting quantum operations by passing a list of qubits. This means that the operation is run all qubits in parallel.

When one broadcasts an operation over a list of qubits, it creates one operation section per qubit. The operation thus returns a list of sections. All those sections will be added to the section currently being built if there is one. We activate broadcasting just by supplying a list of qubits instead of a single qubit, like so:

sections = my_quantum_operation(qubits, ...)

When broadcasting, other parameters of the operation may be either specified per-qubit or once for all the qubits. If a parameter is supplied as a list (or tuple) it is treated as being per-qubit. Otherwise the single value supplied is used for all the qubits.

Note that the broadcasting feature is currently an experimental feature and might still change in the future.

In the tutorial on Quantum Operations, we show you how to create a set of quantum operations and how to use them in LabOne Q Experiments implementing an experimental pulse sequence. Check it out!