mimiqcircuits.operations.gates.standard.dcx

Double-CNOT (DCX) gate.

Classes

GateDCX()

Two qubit double-CNOT gate.

class mimiqcircuits.operations.gates.standard.dcx.GateDCX[source]

Bases: Gate

Two qubit double-CNOT gate.

A two qubit Clifford gate consisting of two back-to-back CNOTs with alternate controls.

Matrix representation:

\[\begin{split}\operatorname{DCX} =\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 1 & 0 & 0 \end{pmatrix}\end{split}\]

Examples

>>> from mimiqcircuits import *
>>> GateDCX()
DCX
>>> GateDCX().matrix()
[1.0, 0, 0, 0]
[0, 0, 1.0, 0]
[0, 0, 0, 1.0]
[0, 1.0, 0, 0]

>>> c = Circuit().push(GateDCX(), 0, 1)
>>> c
2-qubit circuit with 1 instruction:
└── DCX @ q[0:1]

>>> GateDCX().power(2), GateDCX().inverse()
(DCX†, DCX†)
>>> GateDCX().decompose()
2-qubit circuit with 2 instructions:
├── CX @ q[0], q[1]
└── CX @ q[1], q[0]