GPi2 gate

The GPi2 gate, an IonQ native π/2 pulse: matrix, phase parameter in turns, effect on the basis states, the GPI2Gate call, and which systems run it.

The GPi2 gate is an IonQ native gate: a quarter-turn (π/2) rotation about an axis in the XY plane of the Bloch sphere, with the axis set by a phase ϕ\phi. It acts on one qubit and takes one parameter, ϕ\phi in turns: GPi2(0.25) is exactly ry(π/2), and GPi2(0) and GPi2(0.5) are the √X and √X† gates up to a global phase. It runs on Aria and Forte, and it is the pulse most standard single-qubit gates compile into. Measured straight after it, a qubit that started as 0 reads 0 or 1 with equal probability, whatever the phase.

Kets such as 0\vert 0 \rangle name the basis states and rotations are described on the Bloch sphere; the qubits lesson introduces both.

Before you use a native gate

Native gates only run in a native-gate circuit, and a circuit cannot mix native and standard gates. In qiskit-ionq a backend is created for one gateset, provider.get_backend(name, gateset="native"); the pre-created backend on Qollab uses the standard gateset. Submitting native gates bypasses IonQ's compiler and optimiser and turns error mitigation off by default, which is why IonQ recommends them only for research work. See How your circuit is compiled.

Call

WhereCall
Pythonqc.append(GPI2Gate(φ), [qubit])
JScircuit.append(GPI2Gate(φ), [qubit])
ClassGPI2Gate, from qiskit_ionq

Matrix

GPi2(ϕ)=12(1ie2πiϕie2πiϕ1)GPi2(\phi) = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & -ie^{-2\pi i\phi} \\ -ie^{2\pi i\phi} & 1 \end{pmatrix}

Two GPi2(φ) in a row make one GPi(φ), up to a global phase.

Effect on basis states

InputOutput
0\vert 0 \rangle12(0ie2πiϕ1)\tfrac{1}{\sqrt{2}}\big(\vert 0 \rangle - ie^{2\pi i\phi}\vert 1 \rangle\big)
1\vert 1 \rangle12(ie2πiϕ0+1)\tfrac{1}{\sqrt{2}}\big(-ie^{-2\pi i\phi}\vert 0 \rangle + \vert 1 \rangle\big)

Measured straight after GPi2, a qubit that started in 0\vert 0 \rangle or 1\vert 1 \rangle reads 0 or 1 with equal probability, whatever the phase.

Inverse

The inverse of GPi2(φ) is GPi2(φ + 0.5): the same pulse with its axis turned half a turn round.

Usage

from qiskit import QuantumCircuit
from qiskit_ionq import GPI2Gate

qc = QuantumCircuit(1, 1)
qc.append(GPI2Gate(0), [0])
qc.append(GPI2Gate(0), [0])
qc.measure(0, 0)
import { QuantumCircuit } from 'qiskit';
import { GPI2Gate } from 'qiskit_ionq';

const circuit = QuantumCircuit(1, 1);
circuit.append(GPI2Gate(0), [0]);
circuit.append(GPI2Gate(0), [0]);
circuit.measure(0, 0);

Every shot reads 1: two GPi2(0) make a GPi(0) up to a global phase, which is an X.

Stay in the loop.

Get the latest tutorials, demos, and project showcases straight to your inbox. No noise, just the good stuff.