Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

QFTSynthesisFull

class qiskit.transpiler.passes.synthesis.high_level_synthesis.QFTSynthesisFull

GitHub

Bases: HighLevelSynthesisPlugin

Synthesis plugin for QFT gates using all-to-all connectivity.

This plugin name is :qft.full 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 the QFTGate include a layer of swap gates at the end of the synthesized circuit, which can in principle be dropped if the QFTGate 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].

  • insert_barriers (bool): If True, barriers are inserted as visualization improvement.

  • inverse (bool): If True, the inverse Fourier transform is constructed.

  • name (str): The name of the circuit.

References

  1. 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]
  2. 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)

GitHub

Run synthesis for the given QFTGate.

Was this page helpful?
Report a bug or request content on GitHub.