UGate#

Module: iqm.pulse.gates.u

class iqm.pulse.gates.u.UGate(parent, name, locus, calibration_data, builder)#

Bases: CompositeGate

SU(2) gate implemented using PRX.

Assumes the chosen PRX implementation uses resonant driving, and that the virtual RZ technique can be used.

Attributes

customizable_gates

These member operations can be calibrated separately from their common calibration by adding OCalibrationData nodes for them under the OILCalibrationData node of the composite gate.

registered_gates

Names of the member operations used by the composite gate.

id

Unique str identifier, needed for certain caching properties.

sub_implementations

Single-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.

Methods

from_unitary

Make a box directly from a single qubit unitary matrix.

rx

X rotation gate.

ry

Y rotation gate.

Parameters:
registered_gates: tuple[str, ...] = ('prx',)#

Names of the member operations used by the composite gate. There must be corresponding keys in builder.op_table.

rx(angle)#

X rotation gate.

Parameters:

angle (float) – rotation angle (in radians)

Returns:

boxed instruction schedule implementing the x rotation gate

Return type:

TimeBox

customizable_gates: tuple[str, ...] | None = ('prx',)#

These member operations can be calibrated separately from their common calibration by adding OCalibrationData nodes for them under the OILCalibrationData node of the composite gate. Must be a subset of registered_gates. By default all member operations are customizable.

ry(angle)#

Y rotation gate.

Parameters:

angle (float) – rotation angle (in radians)

Returns:

boxed instruction schedule implementing the y rotation gate

Return type:

TimeBox

from_unitary(unitary)#

Make a box directly from a single qubit unitary matrix.

Parameters:

unitary (np.ndarray) – 2x2 unitary matrix

Returns:

boxed instruction schedule implementing the unitary as a gate

Return type:

TimeBox

Inheritance

Inheritance diagram of iqm.pulse.gates.u.UGate