SinglePulseGate#

class iqm.pulse.gate_implementation.SinglePulseGate(parent, name, locus, calibration_data, builder)#

Bases: GateImplementation

Base class for GateImplementations that play a single pulse on a single channel.

The pulse is created in _get_pulse() and the channel is specified in _get_pulse_channel(). The base class also implements a basic _call() method that just inserts the specified pulse into the specified channel, and a method for computing the pulse’s duration. All of these methods can be overridden in subclasses.

Module: iqm.pulse.gate_implementation

Attributes

Methods

duration_in_seconds

Duration of the Schedule of the gate implementation (in seconds).

Parameters:
_call()#

The GateImplementation-specific logic for implementing a quantum operation.

Inheriting classes may override this method if the default __call__() caching (based on the args & kwargs in the signature) is sufficient. Any additional caching may also be implemented inside this function if needed.

Return type:

TimeBox

_get_pulse_channel()#

Return the channel for the pulse.

The default is the drive channel for a single qubit locus.

Return type:

str

_get_pulse(**kwargs)#

Return pulse based on the provided calibration data.

Return type:

Instruction

duration_in_seconds()#

Duration of the Schedule of the gate implementation (in seconds).

Can be left unimplemented if the duration e.g. depends on the gate arguments. Subclasses can reimplement this method in case it makes sense in their context.

Return type:

float