move

move#

Two-qubit MOVE gate.

The MOVE gate is a population exchange operation between a qubit and a resonator, 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.

Full path: iqm.pulse.gates.move

Functions

apply_move_gate_phase_corrections(schedule, ...)

Schedule-level pass applying resonator-related phase corrections in MOVE sandwiches to the moved qubit.

validate_move_instructions(instructions, builder)

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

Classes

MOVE_CRF_CRF

Qubit-resonator MOVE gate using the CRF waveform for the coupler and the qubit flux pulse.

MOVE_CustomWaveforms

Qubit-resonator MOVE gate using flux pulses on both components.

MOVE_TGSS_CRF

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

MoveMarker

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

Inheritance

digraph inheritancedc02d3d2bc { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ABC" [URL="https://docs.python.org/3.11/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "FluxPulseGate" [URL="iqm.pulse.gates.cz.FluxPulseGate.html#iqm.pulse.gates.cz.FluxPulseGate",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Discrete two locus component gate implemented using flux pulses, virtual RZs,"]; "GateImplementation" -> "FluxPulseGate" [arrowsize=0.5,style="setlinewidth(0.5)"]; "GateImplementation" [URL="iqm.pulse.gate_implementation.GateImplementation.html#iqm.pulse.gate_implementation.GateImplementation",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="ABC for implementing quantum gates and other quantum operations using instruction schedules."]; "ABC" -> "GateImplementation" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Instruction" [URL="iqm.pulse.playlist.instructions.Instruction.html#iqm.pulse.playlist.instructions.Instruction",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Command that can be executed by the quantum computer on a control channel."]; "MOVE_CRF_CRF" [URL="iqm.pulse.gates.move.MOVE_CRF_CRF.html#iqm.pulse.gates.move.MOVE_CRF_CRF",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Qubit-resonator MOVE gate using the CRF waveform for the coupler and the qubit flux pulse."]; "MOVE_CustomWaveforms" -> "MOVE_CRF_CRF" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MOVE_CustomWaveforms" [URL="iqm.pulse.gates.move.MOVE_CustomWaveforms.html#iqm.pulse.gates.move.MOVE_CustomWaveforms",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Qubit-resonator MOVE gate using flux pulses on both components."]; "FluxPulseGate" -> "MOVE_CustomWaveforms" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MOVE_TGSS_CRF" [URL="iqm.pulse.gates.move.MOVE_TGSS_CRF.html#iqm.pulse.gates.move.MOVE_TGSS_CRF",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Qubit-resonator MOVE gate using the TGSS waveform for the coupler flux pulse and the"]; "MOVE_CustomWaveforms" -> "MOVE_TGSS_CRF" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MoveMarker" [URL="iqm.pulse.gates.move.MoveMarker.html#iqm.pulse.gates.move.MoveMarker",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Special annotation instruction to indicate the beginning and ending of MOVE gates."]; "Wait" -> "MoveMarker" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Wait" [URL="iqm.pulse.playlist.instructions.Wait.html#iqm.pulse.playlist.instructions.Wait",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Behave as if outputting zero-valued samples for the duration of the instruction."]; "Instruction" -> "Wait" [arrowsize=0.5,style="setlinewidth(0.5)"]; }