RZ_Virtual#
- class iqm.pulse.gates.rz.RZ_Virtual(parent, name, locus, calibration_data, builder)#
Bases:
GateImplementation
Implementation of the RZ gate using the virtual z rotation technique.
Implements the RZ gate on a specific qubit using a
VirtualRZ
instruction, which simply changes the phase of the local oscillator driving that qubit. This requires no calibration data as of now. The generated VirtualRZ instruction has the shortest possible duration allowed by the instruments.The virtual z rotation method is based on algebraically commuting the RZ gates towards the end of the circuit, until they hit a measurement operation, at which point they are eliminated. It assumes that
all the multi-qubit gates in the circuit commute with arbitrary RZ gates (this holds e.g. for CZ since it is diagonal),
measurements are projective and happen in the z basis, so that RZ gates that immediately precede them do not affect the measurement result or the state after the measurement, and thus can be removed, and
conjugating the single-qubit gates in the circuit with RZ is equivalent to incrementing the phase of the drive (holds for
PRX
),\[R_\phi(\theta) R_z(\alpha) = R_z(\alpha) R_{\phi - \alpha}(\theta),\]which can be accomplished either by incrementing the phase of the local oscillator of the drive channel, or incrementing the phases of all the
IQPulse
s following it on the drive channel.
If all these assumptions hold we may implement an RZ gate using a VirtualRZ instruction, with
phase_increment
equal to the negated rotation angle.- Parameters:
channel – name of the drive channel on which the VirtualRZ acts
duration – time duration of the VirtualRZ instruction, in seconds
parent (QuantumOp) –
name (str) –
locus (Locus) –
calibration_data (OILCalibrationData) –
builder (ScheduleBuilder) –
Module:
iqm.pulse.gates.rz
Attributes
Required calibration data, may be nested
Methods
Duration of the Schedule of the gate implementation (in seconds).
Get the name of the locus mapping stored in
ScheduleBuilder.ChipTopology
for this implementation.- _call(angle)#
Z rotation gate.
- 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:
- classmethod get_locus_mapping_name(operation_name, implementation_name)#
Get the name of the locus mapping stored in
ScheduleBuilder.ChipTopology
for this implementation.By default, it is
"<operation_name>.<implementation_name>"
. Inheriting classes may override this for different behaviour.