The Quipper System

Safe HaskellNone

Quipper.Libraries.QFT

Description

This module implements the Quantum Fourier Transform.

Synopsis

Documentation

qft_little_endian :: [Qubit] -> Circ [Qubit] Source #

Apply the Quantum Fourier Transform to a list of n qubits. Both the input and output qubit lists are little-endian, i.e., the leftmost qubit (head of the list) is the least significant one.

Note that this function cannot be used in imperative style, i.e., it does not update its arguments "in place". The output qubits are in different physical locations than the input ones.

qft_big_endian :: [Qubit] -> Circ [Qubit] Source #

Apply the Quantum Fourier Transform to a list of n qubits. Both the input and output qubit lists are big-endian, i.e., the leftmost qubit (head of the list) is the most significant one.

Note that this function cannot be used in imperative style, i.e., it does not update its arguments "in place". The output qubits are in different physical locations than the input ones.

qft_rev :: [Qubit] -> Circ [Qubit] Source #

Apply the Quantum Fourier Transform to a list of n qubits. The input is little-endian and the output is big-endian.

Unlike qft_little_endian and qft_big_endian, this function can be used in imperative style, i.e., it modifies its arguments "in place".

qft_int :: QDInt -> Circ QDInt Source #

Apply the Quantum Fourier Transform to a QDInt.

Note that this function cannot be used in imperative style, i.e., it does not update its arguments "in place". The output qubits are in different physical locations than the input ones.