Skip to content

Quantum Fourier Transform

View on GitHub Experiment in the IDE

The quantum Fourier transform (QFT) function is the quantum analog for discrete Fourier transform. It is applied on the quantum register state vector.

The state vector x is transformed to y in the following manner:

\[y_{k} = \frac{1}{\sqrt{N}} \sum_{j=0}^{N-1} x_j e^{2\pi i \frac{jk}{N}}\]

Function: qft

Arguments:

  • target: QArray[QBit]

The target quantum argument is the quantum state on which we apply the QFT.

Example

from classiq import Output, QArray, QBit, allocate, create_model, qft, qfunc


@qfunc
def main(x: Output[QArray[QBit]]):

    allocate(4, x)
    qft(x)


qmod = create_model(main)
from classiq import synthesize, write_qmod

write_qmod(qmod, "qft")
qprog = synthesize(qmod)