QFTSynthesisLine
class qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisLine
Bases: HighLevelSynthesisPlugin
Synthesis plugin for QFT gates using linear connectivity.
This plugin name is :qft.line
which can be used as the key on an HLSConfig
object to use this method with HighLevelSynthesis
.
Note that the plugin mechanism is not applied if the gate is called qft
but is not an instance of QFTGate
. This allows users to create custom gates with name qft
.
The plugin supports the following additional options:
-
reverse_qubits (bool): Whether to synthesize the “QFT” operation (if
False
,which is the default) or the “QFT-with-reversal” operation (if
True
). Some implementation of theQFTGate
include a layer of swap gates at the end of the synthesized circuit, which can in principle be dropped if theQFTGate
itself is the last gate in the circuit. -
approximation_degree (int): the degree of approximation (0 for no approximation).
It is possible to implement the QFT approximately by ignoring controlled-phase rotations with the angle beneath a threshold. This is discussed in more detail in [1] or [2].
References
- Adriano Barenco, Artur Ekert, Kalle-Antti Suominen, and Päivi Törmä, Approximate Quantum Fourier Transform and Decoherence, Physical Review A (1996). arXiv:quant-ph/9601018 [quant-ph]
- Donny Cheung, Improved Bounds for the Approximate QFT (2004), arXiv:quant-ph/0403071 [quant-ph]
Methods
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Run synthesis for the given QFTGate.