This module provides an implementation of the Quantum Fourier Transform in QIO.
Defines the unitary the represents appliying a Quantum Fourier Transform to the given quantum register.
The definition of the QFT unitary makes use of an accumulator, to repeatedly apply smaller QFTs to the tail of the given quantum register.
The "base" step involved in a QFT is a series of controlled rotations.
The rotation used in the QFT is a phase rotation, parameterised by the angle 1/(2^k)