Copyright (C) 2011 and later, Paul D. Nation & Robert J. Johansson
This notebooks demonstrates how a toffoli gate can be rewritten in terms of CNOT gates and single qubit gates, and verifies the equivalence of the two gate sequences by comparing their matrix representations. For more information about the toffoli decomposition, see Nielsen & Chuang, Sec. 4.3, p178.
In [1]:
from qutip import *
In [2]:
q = QubitCircuit(3, reverse_states=False)
q.add_gate("TOFFOLI", controls=[0, 2], targets=[1])
In [3]:
q.png
Out[3]:
In [4]:
U = gate_sequence_product(q.propagators())
U.tidyup()
Out[4]:
In [5]:
q2 = q.resolve_gates()
In [6]:
q2.png
Out[6]:
In [7]:
U2 = gate_sequence_product(q2.propagators())
U2.tidyup()
Out[7]:
In [8]:
U == U2
Out[8]:
In [9]:
%reload_ext version_information
%version_information numpy, cython, scipy, matplotlib, qutip
Out[9]: