Two Bit FFFT Gate#
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
TwoBitFFFT
#
Two-qubit fermionic Fourier transform gate.
Parameters#
k
: An integer.n
: The number of qubits the FFFT acts on.eps
: The rotation precision.is_adjoint
: If True, this bloq is \(F^\dagger\) instead.
References#
Improved Fault-Tolerant Quantum Simulation of Condensed-Phase Correlated Electrons via Trotterization. Eq 32 and Figure 8.
from qualtran.bloqs.qft import TwoBitFFFT
Example Instances#
two_bit_ffft = TwoBitFFFT(2, 3)
Graphical Signature#
from qualtran.drawing import show_bloqs
show_bloqs([two_bit_ffft],
['`two_bit_ffft`'])
Call Graph#
from qualtran.resource_counting.generalizers import ignore_split_join
two_bit_ffft_g, two_bit_ffft_sigma = two_bit_ffft.call_graph(max_depth=1, generalizer=ignore_split_join)
show_call_graph(two_bit_ffft_g)
show_counts_sigma(two_bit_ffft_sigma)
Counts totals:
CNOT
: 3H
: 6Rz(4.1887902047863905)
: 1S
: 3T
: 2