Toffoli#

from qualtran import Bloq, CompositeBloq, BloqBuilder, Signature, Register
from qualtran import QBit, QInt, QUInt, QAny
from qualtran.drawing import show_bloq, show_call_graph, show_counts_sigma
from typing import *
import numpy as np
import sympy
import cirq

Toffoli#

The Toffoli gate.

This will flip the target bit if both controls are active. It can be thought of as a reversible AND gate.

Like TGate, this is a common compilation target. The Clifford+Toffoli gateset is universal.

References#

from qualtran.bloqs.basic_gates import Toffoli

Example Instances#

toffoli = Toffoli()

Graphical Signature#

from qualtran.drawing import show_bloqs
show_bloqs([toffoli],
           ['`toffoli`'])
show_bloq(toffoli, 'musical_score')
../../_images/eb41f51ea5c969775423052e65b1e2426aecb3f700586812c0ece6803ea6d444.png

Call Graph#

from qualtran.resource_counting.generalizers import ignore_split_join
toffoli_g, toffoli_sigma = toffoli.call_graph(max_depth=1, generalizer=ignore_split_join)
show_call_graph(toffoli_g)
show_counts_sigma(toffoli_sigma)
../../_images/cb5806a9f53f75e59fc0abf4f1c37072634691fa75806d1d75f5ef858fa0c373.svg

Counts totals:

  • Toffoli: 1