About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
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.
Was this page helpful?
Report a bug or request content on GitHub.