hardware natives 1 qubit 1 parameter
GPi2
IonQ's native $\pi/2$ pulse, a half rotation about the equatorial Bloch-sphere axis at angle $\phi$.
The GPi2 gate is the half-pulse counterpart of GPi: a $\pi/2$ rotation about the equatorial axis at azimuthal angle $\phi$. It is exactly the general phased rotation at $\theta = \pi/2$: $\mathrm{GPi2}(\phi) = R(\pi/2, \phi)$.
$$ \mathrm{GPi2}(\phi) = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & -i\mathrm{e}^{-i\phi} \\ -i\mathrm{e}^{i\phi} & 1 \end{bmatrix} $$
Special values
| $\phi$ | Gate |
|---|---|
| $0$ | $R_x(\pi/2)$, i.e. $\sqrt{X}$ up to global phase |
| $\pi/2$ | $R_y(\pi/2)$ |
| $\pi$ | $R_x(-\pi/2)$ |
Properties
- Creates equal superpositions: $\mathrm{GPi2}(\phi)$ maps the poles of the Bloch sphere to the equator, making it the hardware-native stand-in for the Hadamard.
- Inverse: $\mathrm{GPi2}(\phi)^\dagger = \mathrm{GPi2}(\phi + \pi)$.
Usage
- On IonQ hardware, arbitrary single-qubit gates are compiled into at most two GPi2 pulses (plus phase bookkeeping): $z$ rotations are virtual — implemented by advancing the phase of all subsequent pulses — so only the equatorial pulses cost real gate time.
The unitary, drawn
Every entry of the matrix as a disc. The area is the transition probability $|U_{jk}|^2$; the colour and the hand are the phase. Rows are outputs $\langle j|$, columns inputs $|k\rangle$, in the computational basis. Each parameter has a slider; play runs through the family along the path of the Quirk link ($\phi = 2\pi t$).
Phase
Disc area $= |U_{jk}|^2$. Hover an entry for its value, or take the JSON.
SDK support
How to call this gate in each framework. Hover a ⓘ for a note; the support matrix compares every gate at once.
| SDK | Name |
|---|---|
| Qiskit | — ⓘ |
| PennyLane | — ⓘ |
| Cirq | cirq_ionq.GPI2Gate |
| Q# | — |
| PyQuil | — |
| Braket | braket.circuits.gates.GPi2 |
| BQSKit | bqskit.ir.gates.U1qPi2Gate ⓘ |
| Qibo | qibo.gates.GPI2 |
| pytket | pytket.circuit.OpType.GPI2 ⓘ |
| Stim | — |
| OpenQASM | — |