Barrier#
- class iqm.pulse.gates.barrier.Barrier(parent, name, locus, calibration_data, builder)#
Bases:
GateImplementationGateImplementation for the n-qudit
barriermetaoperation.Returns a schedule with zero-duration
Blockmetainstructions. When this is appended to anotherSchedule, it causes the affected channels to be padded withWaitinstructions to the same length, which in turn imposes a definite temporal order for the operations on different sides of the barrier (the ones preceding it are always executed first).Note
Assumes that all instructions involve either the drive, flux or probe channels of the locus QPU components.
- Parameters:
channels – channels related to the locus QPU components, to be blocked
parent (QuantumOp)
name (str)
locus (Locus)
calibration_data (OILCalibrationData)
builder (ScheduleBuilder)
Module:
iqm.pulse.gates.barrierAttributes
True iff the implementation is symmetric in its locus components.
idUnique str identifier, needed for certain caching properties.
sub_implementationsSingle-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.
Methods
Duration of the Schedule of the gate implementation (in seconds).
- symmetric: bool = True#
True iff the implementation is symmetric in its locus components. Only meaningful if
arity != 1, and the locus components are of the same type.
- _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: