qgates.gates

You can read more about logic gates here and quantum gates here.

qgates.gates.AND = array([[1, 1, 1, 0], [0, 0, 0, 1]])

2x4 logical AND gate \(\begin{bmatrix} 1 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}\)

qgates.gates.CNOT = array([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0]])

4x4 Quantum CNOT gate: \(\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{bmatrix}\)

qgates.gates.COPY = array([[1, 0], [0, 0], [0, 0], [0, 1]])

4x2 COPY gate \(\begin{bmatrix} 1 & 0 \\ 0 & 0 \\ 0 & 0 \\ 0 & 1 \end{bmatrix}\)

qgates.gates.HAD = array([[ 0.70710678, 0.70710678], [ 0.70710678, -0.70710678]])

2x2 Quantum HADAMARD gate \(\begin{bmatrix} \frac{1}{\sqrt{2}} && \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} && \frac{-1}{\sqrt{2}} \end{bmatrix}\)

qgates.gates.IDEN = array([[1, 0], [0, 1]])

2x2 identity gate \(\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}\)

qgates.gates.NAND = array([[0, 0, 0, 1], [1, 1, 1, 0]])

2x4 logical NAND gate \(\begin{bmatrix} 0 & 0 & 0 & 1 \\ 1 & 1 & 1 & 0 \end{bmatrix}\)

qgates.gates.NOR = array([[0, 1, 1, 1], [1, 0, 0, 0]])

2x4 logical NOR gate \(\begin{bmatrix} 0 & 1 & 1 & 1 \\ 1 & 0 & 0 & 0 \end{bmatrix}\)

qgates.gates.NOT = array([[0, 1], [1, 0]])

2x2 logical NOT gate \(\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\)

qgates.gates.OR = array([[1, 0, 0, 0], [0, 1, 1, 1]])

2x4 logical OR gate \(\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 1 & 1 \end{bmatrix}\)

qgates.gates.SWAP = array([[1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 1]])

4x4 SWAP gate \(\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}\)

qgates.gates.TOFFOLI = array([[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, 0, 1], [0, 0, 0, 0, 0, 0, 1, 0]])

8x8 Quantum TOFFOLI gate: \(\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 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{bmatrix}\)

qgates.gates.XOR = array([[1, 0, 0, 1], [0, 1, 1, 0]])

2x4 logical XOR gate \(\begin{bmatrix} 1 & 0 & 0 & 1 \\ 0 & 1 & 1 & 0 \end{bmatrix}\)