quantum gate directory

Gates Groups SDKs GitHub
$C_d$

qudits· 1 qubit ·dimension $d$

Chrestenson

Qudit generalization of the Hadamard gate that maps each basis state to an equal superposition with root-of-unity phases.

The Chrestenson gate is the $d$-level generalization of the Hadamard gate. Let $\omega = \mathrm{e}^{2\pi i/d}$. It maps a computational-basis state $|j\rangle$ to an equal superposition whose phases depend on $j$:

$$ C_d |j\rangle = \frac{1}{\sqrt{d}} \sum_{k=0}^{d-1} \omega^{jk}|k\rangle, \qquad (C_d)_{kj} = \frac{\omega^{jk}}{\sqrt{d}}. $$

For a four-level qudit, $\omega=i$ and

$$ C_4 = \frac{1}{2} \begin{bmatrix} 1 & 1 & 1 & 1 \\ 1 & i & -1 & -i \\ 1 & -1 & 1 & -1 \\ 1 & -i & -1 & i \end{bmatrix}. $$

Properties

  • $C_2 = H$: in dimension two the Chrestenson gate is exactly the Hadamard gate.
  • Unitary and symmetric: $C_d^\dagger C_d = I$ and $C_d^\mathsf{T} = C_d$. Its inverse replaces $\omega$ by $\omega^{-1}$.
  • It is the one-qudit, $d$-dimensional quantum Fourier transform under the same positive-exponent convention. Consequently, $C_d^2|j\rangle = |-j \bmod d\rangle$ and $C_d^4 = I$.
  • It exchanges the generalized Pauli bases: $C_d X_d C_d^\dagger = Z_d$ and $C_d Z_d C_d^\dagger = X_d^{-1}$, where $X_d$ and $Z_d$ are the shift and clock gates.

Usage

  • Creates a maximal superposition from $|0\rangle$: $C_d|0\rangle = \frac{1}{\sqrt{d}}\sum_k |k\rangle$.
  • In generalized Pauli-check sandwiching, $C_d$ and $C_d^\dagger$ prepare and unprepare qudit ancilla syndrome registers. This use is described in Agyeman-Bobie et al. (2026).

Also written

  • $C_d$
  • $\mathcal{C}_d$

Reference

A class of generalized Walsh functions (1955)

Data

  • This gate as JSON
  • Edit this page on GitHub

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, shown for $d = 3$.

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.

SDKName
Qiskit —
PennyLane —
Cirq — ⓘ
Q# —
PyQuil —
Braket —
BQSKit —
Qibo —
pytket —
Stim —
OpenQASM —

← All gates

gate.directory made by nts $\oplus$ rdls