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 . It acts on one qubit and takes one parameter, 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 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
| Where | Call |
|---|---|
| Python | qc.append(GPI2Gate(φ), [qubit]) |
| JS | circuit.append(GPI2Gate(φ), [qubit]) |
| Class | GPI2Gate, from qiskit_ionq |
Matrix
Two GPi2(φ) in a row make one GPi(φ), up to a global phase.
Effect on basis states
| Input | Output |
|---|---|
Measured straight after GPi2, a qubit that started in or 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.
Related
Stay in the loop.
Get the latest tutorials, demos, and project showcases straight to your inbox. No noise, just the good stuff.
Gates