##// END OF EJS Templates
Updating examples notebooks.
Updating examples notebooks.

File last commit:

r4337:0f16a103
r4337:0f16a103
Show More
decompose.ipynb
1 line | 2.2 KiB | text/plain | TextLexer

Gate Decomposition

In [1]:
%load_ext sympyprinting
In [2]:
from sympy import sqrt, symbols, Rational
from sympy import expand, Eq, Symbol, simplify, exp, sin
from sympy.physics.quantum import *
from sympy.physics.quantum.qubit import *
from sympy.physics.quantum.gate import *
from sympy.physics.quantum.grover import *
from sympy.physics.quantum.qft import QFT, IQFT, Fourier
from sympy.physics.quantum.circuitplot import circuit_plot

Example 1

Create a symbolic controlled-Y gate

In [3]:
CY10 = CGate(1, Y(0)); CY10

Decompose it into elementary gates and plot it

In [4]:
CY10.decompose()
In [5]:
circuit_plot(CY10.decompose(), nqubits=2)

Example 2

Create a controlled-Z gate

In [6]:
CZ01 = CGate(0, Z(1)); CZ01

Decompose and plot it

In [7]:
CZ01.decompose()
In [8]:
circuit_plot(CZ01.decompose(), nqubits=2)

Example 3

Create a SWAP gate

In [9]:
SWAP10 = SWAP(1, 0); SWAP10

Decompose and plot it

In [10]:
SWAP10.decompose()
In [11]:
circuit_plot(SWAP10.decompose(), nqubits=2)

All together now

In [12]:
gates = [CGate(1,Y(0)), CGate(0,Z(1)), SWAP(1, 0)]
In [13]:
for g in gates:
    dg = g.decompose()
    display(Eq(g, dg))
    circuit_plot(g, nqubits=2)
    circuit_plot(dg, nqubits=2)    
In [30]:
%notebook save decompose.ipynb
In [53]:
%notebook load gate_rules.ipynb