move

move#

Full path: iqm.pulse.gates.move

Two-qubit MOVE gate.

The MOVE gate is a population exchange operation between two components, mediated by a coupler, that has the following properties:

  • MOVE is unitary.

  • The effect of MOVE is only defined in the invariant subspace \(S = \text{span}\{|00\rangle, |01\rangle, |10\rangle\}\), where it swaps the populations of the states \(|01\rangle\) and \(|10\rangle\). Anything may happen in the orthogonal subspace as long as it is unitary and invariant.

  • In the subspace where it is defined, MOVE is an involution: \(\text{MOVE}_S^2 = I_S\).

Thus MOVE has the following presentation in the subspace \(S\):

\[\text{MOVE}_S = |00\rangle \langle 00| + a |10\rangle \langle 01| + a^{-1} |01\rangle \langle 10|,\]

where \(a\) is an undefined complex phase. This degree of freedom (in addition to the undefined effect of the gate in the orthogonal subspace) means there is a continuum of different MOVE gates, all equally valid. The phase \(a\) is canceled when the MOVE gate is applied a second time due to the involution property.

Functions

apply_move_gate_phase_corrections(schedule, ...)

Schedule-level pass applying phase corrections for MOVE sandwiches to the first MOVE component.

validate_move_instructions(instructions, builder)

Circuit-level pass to prepare a circuit containing MOVE gates for compilation.

Classes

MOVE_CRF_CRF

MOVE gate using CRF waveform for the coupler and the qubit flux pulses.

MOVE_CustomWaveforms

Qubit-resonator or qubit-qubit MOVE gate using flux pulses both on a qubit and the coupler.

MOVE_SLEPIAN_CRF

MOVE gate using Slepian waveform for the coupler flux pulse and CRF waveform for the qubit flux pulse.

MOVE_TGSS_CRF

MOVE gate using TGSS waveform for the coupler flux pulse and CRF waveform for the qubit flux pulse.

MoveMarker

Special annotation instruction to indicate the beginning and ending of MOVE gates.

Inheritance

Inheritance diagram of iqm.pulse.gates.move