extern void quantum_exp_mod_n(int N, int x, int width_input, int
width_scratch, quantum_reg *reg); |

This function uses a quantum algorithm to calculate the function
. `width_input` is the width of the working space,
`width_scratch` is the width of a single scratch space
register. Note that the function requires a scratch space of
qubits.

extern void quantum_qft(int width, quantum_reg *reg); |

This function performs a Quantum Fourier Transform (QFT). It can be
used to determine the period of the values in a quantum register. The
QFT is done on the first (i.e. least significant) `width` qubits
of the register.

extern void quantum_qft_inv(int width, quantum_reg *reg); |

This is the inverse of the QFT and thus maps the frequency of the basis states into a periodic function.