quantum gate directory

Gates Groups SDKs GitHub
$D(\theta)$

controlled· 3 qubits ·1 parameter

Deutsch

The original universal three-qubit gate, applying $iR_x(2\theta)$ to the target when both controls are $|1\rangle$.

Open in Quirk ↗ with $\theta = 2\pi t$

The Deutsch gate is the doubly-controlled rotation David Deutsch introduced in 1989 to prove that a single three-qubit gate can be universal for quantum computation. When both controls are set it applies $i R_x(2\theta)$ to the target; otherwise it does nothing. In the computational basis, $D(\theta)$ is

$$ \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & i\cos\theta & \sin\theta \\ 0 & 0 & 0 & 0 & 0 & 0 & \sin\theta & i\cos\theta \end{bmatrix} $$

Special values

$\theta$ Gate
$\pi/2$ Toffoli

Properties

  • Universality: when $\theta/\pi$ is irrational, repeated applications of $D(\theta)$ alone approximate any unitary to arbitrary accuracy (using ancilla qubits) — the historical prototype for all universality results that followed.
  • Since $D(\theta)$ contains the Toffoli, it inherits classical (reversible) universality too.

Usage

  • Mostly of theoretical and historical interest; no hardware implements it natively, and modern universality proofs use small discrete gate sets (e.g. Clifford + $T$) instead.

Also written

  • $D(\theta)$
  • $\Lambda^2(iR_x(2\theta))$

Reference

Quantum computational networks (1989)

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. Each parameter has a slider; play runs through the family along the path of the Quirk link ($\theta = 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.

SDKName
Qiskit —
PennyLane —
Cirq —
Q# —
PyQuil —
Braket —
BQSKit —
Qibo qibo.gates.DEUTSCH
pytket — ⓘ
Stim —
OpenQASM —

← All gates

gate.directory made by nts $\oplus$ rdls