sol

Guppy standard library for Quantinuum Sol system operations.

Offers low-level access to primitive operations on the Sol system, including measurement, reset, and single qubit and two qubit gates.

For operations in this module, a qubit value maps to a specific ion, a guarantee not provided by the more abstract std.quantum module. For example, the function guppylang.std.quantum.project_z() may lower to a destructive measurement followed by a fresh ion allocation and conditional X flip to achieve “projective measurement” semantics. At the end of this process, the qubit may no longer map to the same

ion as the original qubit. Such a guarantee can be achieved by using

the functions in this module.

Classes

MaybeLeaked()

A class representing a measurement that may have leaked.

Functions

collect_measurements(measurements)

Block on each measurement until it is available and collect results into an array of bools.

lazy_measure(q)

Alias for measure().

lazy_measure_and_reset(q)

Alias for measure_and_reset().

lazy_measure_and_reset_array(qubits)

Alias for measure_and_reset_array().

lazy_measure_array(qubits)

Alias for measure_array().

measure(q)

Request a destructive lazy measurement of a qubit, returning a Measurement value.

measure_and_reset(q)

System primitive destructive measurement, returning a Measurement value.

measure_and_reset_array(qubits)

Lazily measure and reset an array of qubits using measure_and_reset(), returning an array of measurements.

measure_array(qubits)

Lazily measure an array of qubits using measure(), returning an array of measurements.

measure_leaked(q)

Perform a lazy 'leakage detecting' measurement

phased_x(q, angle1, angle2)

Primitive phased_x gate command.

phased_xx(q1, q2, angle1, angle2)

Primitive phased_xx gate command.

phased_xx_max(q1, q2, phase)

phased_xx_max gate command.

qfree(q)

Free a qubit, returning the ion to the pool of available ions.

reset(q)

Reset a qubit to the \(|0\rangle\) state.

rz(q, angle)

Primitive rz gate command.

xx_max(q1, q2)

xx_max gate command.

yy_max(q1, q2)

yy_max gate command.