QFTLayer#

class torchquantum.layer.QFTLayer(n_wires: Optional[int] = None, wires: Optional[Iterable] = None, do_swaps: bool = True, inverse: bool = False)[source]#

Bases: QuantumModule

__init__(n_wires: Optional[int] = None, wires: Optional[Iterable] = None, do_swaps: bool = True, inverse: bool = False)[source]#

Constructs a Quantum Fourier Transform (QFT) layer

Parameters:
  • n_wires (int) – Number of wires for the QFT as an integer

  • wires (Iterable) – Wires to perform the QFT as an Iterable

  • do_swaps (bool) – Whether or not to add the final swaps in a boolean format

  • inverse (bool) – Whether to create an inverse QFT layer in a boolean format

Methods

build_circuit()[source]#

Construct a QFT circuit.

build_inverse_circuit()[source]#

Construct the inverse of a QFT circuit.

forward(q_device: QuantumDevice)[source]#

Define the computation performed at every call.

Should be overridden by all subclasses.

Note

Although the recipe for forward pass needs to be defined within this function, one should call the Module instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.

Attributes

training: bool#