Safe Haskell | None |
---|---|

Language | Haskell98 |

This module implements the Quantum Fourier Transform.

# 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".